Customized configuration for an exoskeleton controller

ABSTRACT

Systems and methods for providing a customized configuration for a controller of an exoskeleton device. A device can receive, via a user interface, feedback from a user indicative of a performance of the user during a movement event. The device can determine characteristics of the user for performing the movement event using a first exoskeleton boot and a second exoskeleton boot and identify properties of a route for the movement event. The device can determine using the characteristics of the user, the feedback and the properties of the route, control parameters for the first exoskeleton boot and the second exoskeleton boot to execute the movement event. The device can apply the control parameters to the first exoskeleton boot and the second exoskeleton boot for the user to operate the first exoskeleton boot and the second exoskeleton boot during the movement event.

CROSS-REFERENCES TO RELATED APPLICATIONS

This application claims the benefit of priority under 35 U.S.C. § 120 asa continuation of U.S. patent application Ser. No. 17/109,911, filedDec. 2, 2021, which claims the benefit of priority under 35 U.S.C. § 119to U.S. Provisional Patent Application No. 63/034,774, filed on Jun. 4,2020, tilted “SYSTEMS AND METHODS FOR AN EXOSKELETON USER APPLICATION,”each of which is incorporated herein by reference in its entirety.

BACKGROUND

Exoskeletons can be worn by a user to facilitate movement of limbs ofthe user.

SUMMARY

Systems, methods and devices of the present technical solution aredirected to a user application to provide customized configuration for acontroller of an exoskeleton device. An exoskeleton device, such as butnot limited to, an exoskeleton boot can be worn by a user on each lowerlimb (e.g., right leg, left leg) to aid the user in performing movementsand/or activities (e.g., walking, running, hiking). The exoskeletonboots can provide force or torque to the respective limb to reduce anamount of force provided by the user to perform the movement and reducea physiological impact on the user during the movement. The exoskeletoncan augment or otherwise change a behavior of the user while performingdifferent movements. Further, the exoskeleton device can its behaviorbased in part on the behavior and/or performance of the user during themovement.

The exoskeleton devices described herein can provide a feedback systemfor a user to interact with an exoskeleton device to provide movementcharacteristics (e.g., limb movement, joint movement, measurements) ofthe user during a movement and enable a customized configuration foroperating the exoskeleton device, customized for the particular user.The feedback system can include an application provided to the userthrough the exoskeleton device and/or a client device (e.g., phoneapplication, smartwatch application, computer application). The user canenter different characteristics and/or measurements (e.g., age, weight,height, activity level, type of activity) to customize the control ofthe exoskeleton device for the user. The exoskeleton device can generatecontrol parameters based in part on the provided user performancecharacteristics and/or measurements. In embodiments, the exoskeletondevice can update or modify control parameters during a current movementbased in part on the provided user performance characteristics and/ormeasurements to improve a performance of the user. The exoskeletondevice can provide visual, haptic and/or audio feedback to the user toindicate if changes were made, what changes were made and/or indicate ifthe respective exoskeleton device is behaving appropriately.

In at least one aspect, a method for controlling operation ofexoskeleton boots is provided. The method can include receiving, by adevice via a user interface, feedback from a user indicative of aperformance of the user during a movement event. The method can includedetermining, by the device, characteristics of the user for performingthe movement event using a first exoskeleton boot and a secondexoskeleton boot. The method can include identifying, by the device,properties of a route for the movement event. The method can includedetermining, by a device using the characteristics of the user, thefeedback and the properties of the route, control parameters for thefirst exoskeleton boot and the second exoskeleton boot to execute themovement event. The method can include applying, by the device, thecontrol parameters to the first exoskeleton boot and the secondexoskeleton boot for the user to operate the first exoskeleton boot andthe second exoskeleton boot during the movement event.

In embodiments, the characteristics of the user can include at least oneof: age, weight, height, gate information, or activity level. Theproperties of the route can include at least one of: type of activity,distance, start point, end point, terrain, or altitude. The controlparameters can include at least one of: battery requirements, powerlevel, power levels for each step performed using the first exoskeletonboot and the second exoskeleton boot.

In some embodiments, the method can include modifying, by the deviceresponsive to a measurement of the user during the movement event, thecontrol parameters during the movement event to modify a power providedto the first exoskeleton boot and the second exoskeleton boot during themovement event. The method can include establishing, by the device, aconnection between the first exoskeleton boot and the second exoskeletonboot to communicate one or more measurements during the movement event.The method can include determining, by the device responsive to an inputfrom the user, a step missed during the movement event. The method caninclude generating, by the device, a notification indicating the stepmissed during the movement event.

The method can include generating, by the device, a group profile for agroup of users based on one or more previous movement events. The methodcan include modifying, by the device using group profile, the controlparameters for the user to operate the first exoskeleton boot and thesecond exoskeleton boot during the movement event. The method caninclude determining, by the device, a score for the user during themovement event based on measurements from the first exoskeleton boot andthe second exoskeleton boot.

In at least one aspect, a method for controlling operation ofexoskeleton boots is provided. The method can include establishing, by adevice responsive to a request from a user, a connection between a firstexoskeleton boot and a second exoskeleton boot. The method can includeidentifying, by the device, a user profile associated with the user. Themethod can include performing, by the device, a range calculation for amovement event based on the user profile and properties of the firstexoskeleton boot and the second exoskeleton boot. The method can includeproviding, by the device responsive to the range calculation, a firstvalue of power to the first exoskeleton boot and a second value of powerto the second exoskeleton boot to execute the movement event.

In some embodiments, the method can include calibrating, by the deviceusing the connection, control parameters between the first exoskeletonboot and the second exoskeleton boot. The method can includedetermining, by the device responsive to the range calculation, thefirst value of power for the first exoskeleton boot and the second valueof power for the second exoskeleton boot to execute the movement eventbased on at least one of: a weight of the user, a height of the user oran age of the user. The method can include receiving, by the device froma user interface, an augmentation value for the first exoskeleton bootand the second exoskeleton boot, the augmentation value indicative of alevel of assistance provided by the first exoskeleton boot and thesecond exoskeleton boot to the user during the movement event.

In embodiments, the method can include modifying, by the deviceresponsive to a measurement indicative of a performance of the userduring the movement event, an augmentation value for the firstexoskeleton boot and the second exoskeleton boot. The augmentation valuecan be indicative of a level of assistance provided by the firstexoskeleton boot and the second exoskeleton boot to the user during themovement event. The method can include determining, by the device, ameasurement of a battery status or battery requirement for the movementevent using a range calculation and a provided augmentation value. Themethod can include providing, by the device to the user through a userinterface, a first step count for the first exoskeleton boot and asecond step count for the second exoskeleton boot. The first step countcan indicate a number of steps performed by the first exoskeleton bootduring the movement event and the second step count can indicate anumber of steps performed by the second exoskeleton boot during themovement event. The method can include continuously modifying, thedevice responsive to actions by the user, the first step count for thefirst exoskeleton boot and the second step count for the secondexoskeleton boot during the movement event.

In at least one aspect, a device for controlling operation ofexoskeleton boots is provided. The device can include a processorcoupled to memory. The processor can be configured to receive, from ause interface communicatively coupled to the device, feedback from theuser indicative of a performance of the user during a movement event.The processor can be configured to determine characteristics of the userfor performing the movement event using a first exoskeleton boot and asecond exoskeleton boot. The processor can be configured to identifyproperties of a route for the movement event. The processor can beconfigured to determine, using the characteristics of the user, thefeedback, and the properties of the route, control parameters for thefirst exoskeleton boot and the second exoskeleton boot to execute themovement event. The processor can be configured to apply the controlparameters to the first exoskeleton boot and the second exoskeleton bootfor the user to operate the first exoskeleton boot and the secondexoskeleton boot during the movement event.

In some embodiments, the processor can be configured to modify,responsive to a measurement of the user during the movement event, thecontrol parameters during the movement event to modify a power providedto the first exoskeleton boot and the second exoskeleton boot during themovement event. The processor can be configured to establish aconnection between the first exoskeleton boot and the second exoskeletonboot to communicate one or more measurements during the movement event.

Those skilled in the art will appreciate that the summary isillustrative only and is not intended to be in any way limiting. Otheraspects, inventive features, and advantages of the devices and/orprocesses described herein, as defined solely by the claims, will becomeapparent in the detailed description set forth herein and taken inconjunction with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The details of one or more implementations of the subject matterdescribed in this specification are set forth in the accompanyingdrawings and the description below. Other features, aspects, andadvantages of the subject matter will become apparent from thedescription, the drawings, and the claims.

FIG. 1 illustrates a schematic diagram of an exoskeleton, according toan embodiment.

FIG. 2 illustrates a schematic diagram of an exoskeleton, according toan embodiment.

FIG. 3 illustrates a schematic diagram of an exoskeleton, according toan embodiment.

FIG. 4 illustrates a schematic diagram of an exoskeleton, according toan embodiment.

FIG. 5 illustrates a schematic diagram of the exoskeleton and internalparts, according to an embodiment.

FIG. 6 illustrates a side view of an exoskeleton, according to anembodiment.

FIG. 7 illustrates a schematic diagram of an exoskeleton, according toan embodiment.

FIG. 8 illustrates a schematic diagram of an exoskeleton and internalparts, according to an embodiment.

FIG. 9 illustrates a schematic diagram of an exoskeleton and internalparts, according to an embodiment.

FIG. 10 illustrates a side view of an exoskeleton, according to anembodiment.

FIG. 11 illustrates a side view of an exoskeleton, according to anembodiment.

FIG. 12 illustrates a method of augmenting user motion, according to anembodiment.

FIG. 13 illustrates a block diagram of an architecture for a computingsystem employed to implement various elements of the system and methodsdepicted in FIGS. 1-16, according to an embodiment.

FIG. 14 is a block diagram of a system for a customized configurationfor an exoskeleton controller in accordance with an illustrativeembodiment.

FIGS. 15A-15B illustrate diagrams of a user application for providingfeedback to an exoskeleton system in accordance with an illustrativeembodiment.

FIG. 16 is a flow chart illustrating a process or method for customizingconfiguration and operation of an exoskeleton device in accordance withan illustrative embodiment.

Like reference numbers and designations in the various drawings indicatelike elements.

DETAILED DESCRIPTION

This disclosure relates generally to performance enhancing wearabletechnologies. Particularly, this disclosure relates to apparatus,systems and methods for providing customized configuration for acontroller of an exoskeleton device through a user application and/oruser feedback.

I. Exoskeleton Overview

Exoskeletons (e.g., battery-powered active exoskeleton, battery-poweredactive exoskeleton boot, lower limb exoskeleton, knee exoskeleton, orback exoskeleton) can include devices worn by a person to augmentphysical abilities. Exoskeletons can be considered passive (e.g., notrequiring an energy source such as a battery) or active (e.g., requiringan energy source to power electronics and usually one or manyactuators). Exoskeletons may be capable of providing large amounts offorce, torque and/or power to the human body in order to assist withmotion.

Exoskeletons can transfer energy to the user or human. Exoskeletons maynot interfere with the natural range of motion of the body. For example,exoskeletons can allow a user to perform actions (e.g., walking,running, reaching, or jumping) without hindering or increasing thedifficulty of performing these actions. Exoskeletons can reduce thedifficulty of performing these actions by reducing the energy or effortthe user would otherwise exert to perform these actions. Exoskeletonscan convert the energy into useful mechanical force, torque, or power.Onboard electronics (e.g., controllers) can control the exoskeleton.Output force and torque sensors can also be used to make controllingeasier.

FIG. 1 illustrates a schematic diagram of an exoskeleton 100. Theexoskeleton 100 can be referred to as a lower limb exoskeleton, lowerlimb exoskeleton assembly, lower limb exoskeleton system, ankleexoskeleton, ankle foot orthosis, knee exoskeleton, hip exoskeleton,exoskeleton boot, or exoboot. The exoskeleton 100 can include a waterresistant active exoskeleton boot. For example, the exoskeleton 100 canresist the penetration of water into the interior of the exoskeleton100. The exoskeleton 100 can include a water resistant activeexoskeleton boot. For example, the exoskeleton 100 can be impervious toliquids (e.g., water) and non-liquids (e.g., dust, dirt, mud, sand, ordebris). The exoskeleton 100 can remain unaffected by water or resistthe ingress of water, such as by decreasing a rate of water flow intothe interior of the exoskeleton 100 to be less than a target rateindicative of being water resistant or waterproof. For example, theexoskeleton 100 can operate in 3 feet of water for a duration of 60minutes. The exoskeleton 100 can have an ingress protection rating (IP)rating of 68. The exoskeleton 100 can have a National ElectricalManufacturer Association (NEMA) rating of 4X, which can indicate thatthe exoskeleton 100 has a degree of protection with respect to harmfuleffects on the equipment due to the ingress of water (e.g., rain, sleet,snow, splashing water, and hose directed water), and that theexoskeleton can be undamaged by the external formation of ice on theenclosure.

The exoskeleton 100 can include a shin pad 125 (e.g., shin guard). Theshin pad 125 can be coupled to a shin of a user below a knee of theuser. The shin pad 125 can be coupled to the shin of the user to providesupport. The shin pad 125 can include a piece of equipment to protectthe user from injury. For example, the shin pad 125 can protect thelower extremities of the user from external impact. The shin pad 125 caninterface with the shin of the user. The shin pad 125 can include a band(e.g., adjustable band) configured to wrap around the shin of the user.The shin pad 125 can secure the upper portion of the exoskeleton 100 tothe body of the user. The shin pad 125 can secure or help secure theexoskeleton 100 to the shin, leg, or lower limb of the user. The shinpad 125 can provide structural integrity to the exoskeleton 100. Theshin pad 125 can support other components of the exoskeleton 100 thatcan be coupled to the shin pad 125. The shin pad 125 can be made oflightweight, sturdy, and/or water resistant materials. For example, theshin pad 125 can be made of plastics, aluminum, fiberglass, foam rubber,polyurethane, and/or carbon fiber.

The exoskeleton 100 can include one or more housings 105. At least oneof the one or more housings 105 can be coupled to the shin pad 125 belowthe knee of the user. The shin pad 125 can be coupled to the at leastone housing via a shin lever. The shin lever can extend from the atleast one housing to the shin pad 125. The shin lever can include amechanical structure that connects the shin pad 125 to a chassis. Thechassis can include a mechanical structure that connects staticcomponents.

The one or more housings 105 can enclose electronic circuitry (e.g.,electronic circuitry 505). The one or more housings 105 can encapsulatesome or all the electronics of the exoskeleton 100. The one or morehousings 105 can include an electronics cover (e.g., case). The one ormore housings 105 can enclose an electric motor (e.g., motor 330). Theelectric motor can generate torque about an axis of rotation of an anklejoint of the user. The ankle joint can allow for dorsiflexion and/orplantarflexion of the user's foot. The exoskeleton 100 can include anankle joint component 120 that rotates about the axis of rotation theankle joint. The ankle joint component 120 can be positioned around oradjacent to the ankle joint.

The exoskeleton 100 can include a rotary encoder 155 (e.g., shaftencoder, first rotary encoder, or motor encoder). The rotary encoder 155can be enclosed within the one or more housings 105. The rotary encoder155 can measure an angle of the electric motor. The angle of theelectric motor can be used by the controller to determine an amount oftorque applied by the exoskeleton 100. For example, the angle of theelectric motor can correspond to an amount of torque applied by theexoskeleton 100. An absolute angle of the electric motor can correspondto an amount of torque applied by the exoskeleton 100. The rotaryencoder 155 can include an inductive encoder. The ankle joint component120 can be actuated by a motor (e.g., electric motor). The rotaryencoder 155 can include a contactless magnetic encoder or an opticalencoder.

The exoskeleton 100 can include a second rotary encoder 160 (e.g., ankleencoder). The second rotary encoder 160 can measure an angle of theankle joint. The angle of the ankle joint can be used by the controllerto determine an amount of torque applied by the exoskeleton 100. Thesecond rotary encoder 160 can include a first component enclosed in theone or more housings 105 and in communication with the electroniccircuitry 505. The second rotary encoder 160 can include a secondcomponent located outside the one or more housings 105 and configured tointeract with the first component. The second rotary encoder 160 caninclude a contactless magnetic encoder, a contactless inductive encoder,or an optical encoder. The second rotary encoder 160 can detect theangle of the ankle joint while the rotary encoder 155 can detect theangle of the electric motor. The angle of the electric motor can bedifferent from the angle of the ankle joint. The angle of the electricmotor can be independent of the angle of the ankle joint. The angle ofthe ankle joint can be used to determine an output (e.g., torque) of theelectric motor. The ankle joint component 120 can be coupled to thesecond rotary encoder 160.

The one or more housings 105 can encapsulate electronics that are partof the exoskeleton 100. The one or more housings 105 can form a fittedstructure (e.g., clamshell structure) to enclose the electroniccircuitry and the electric motor. The fitted structure can be formedfrom two or more individual components. The individual components of thefitted structure can be joined together to form a single unit. The oneor more housings 105 can be formed of plastic or metal (e.g., aluminum).An adhesive sealant can be placed between individual components of thefitted structure and under the electronics cover. A gasket can be placedbetween individual components of the fitted structure and under theelectronics cover. The gasket can be placed in the seam between theindividual components of the fitted structure.

A sealant 165 can be placed in contact with the one or more housings 105to close the one or more housings 105 and prevent an ingress of waterinto the one or more housings 105. The sealant 165 used to close the oneor more housings 105 can include an adhesive sealant (e.g., super glue,epoxy resin, or polyvinyl acetate). The adhesive sealant can include asubstance used to block the passage of fluids through the surface orjoints of the one or more housings 105. The sealant 165 used to closethe one or more housings 105 can include epoxy. The sealant 165 canpermanently seal or close the one or more housings 105. For example, thesealant 165 can seal or close the one or more housings 105 such that theone or more housings are not removably attached to one another.

The exoskeleton 100 can couple with a boot 110. For example, theexoskeleton 100 can be attached to the boot 110. The boot 110 can beworn by the user. The boot 110 can be connected to the exoskeleton 100.The exoskeleton 100 can be compatible with different boot shapes andsizes.

The exoskeleton 100 can include an actuator 130 (e.g., actuator leverarm, or actuator module). The actuator 130 can include one or more ofthe components in the exoskeleton 100. For example, the actuator 130 caninclude the one or more housings 105, the footplate 115, the ankle jointcomponent 120, the actuator belt 135, and the post 150, while excludingthe boot 110. The boot 110 can couple the user to the actuator 130. Theactuator 130 can provide torque to the ground and the user.

The exoskeleton 100 can include a footplate 115 (e.g., carbon insert,carbon shank). The footplate 115 can include a carbon fiber structurelocated inside of the sole of the boot 110. The footplate 115 can bemade of a carbon-fiber composite. The footplate 115 can be inserted intothe sole of the boot 110. The footplate 115 can be used to transmittorque from the actuator 130 to the ground and to the user. Thefootplate 115 can be located in the sole of the exoskeleton 100. Thisfootplate 115 can have attachment points that allow for the connectionof the exoskeleton's mechanical structure. An aluminum insert withtapped holes and cylindrical bosses can be bonded into the footplate115. This can create a rigid mechanical connection to the largelycompliant boot structure. The bosses provide a structure that can beused for alignment. The footplate 115 can be sandwiched between twostructures, thereby reducing the stress concentration on the part. Thisdesign can allow the boot to function as a normal boot when there is noactuator 130 attached.

The exoskeleton 100 can include an actuator belt 135 (e.g., beltdrivetrain). The actuator belt 135 can include a shaft that is driven bythe motor and winds the actuator belt 135 around itself. The actuatorbelt 135 can include a tensile member that is pulled by the spool shaftand applies a force to the ankle lever. Tension in the actuator belt 135can apply a force to the ankle lever. The exoskeleton 100 can include anankle lever. The ankle lever can include a lever used to transmit torqueto the ankle. The exoskeleton 100 can be used to augment the anklejoint.

The exoskeleton 100 can include a power button 140 (e.g., switch, powerswitch). The power button 140 can power the electronics of theexoskeleton 100. The power button 140 can be located on the exterior ofthe exoskeleton 100. The power button 140 can be coupled to theelectronics in the interior of the exoskeleton 100. The power button 140can be electrically connected to an electronic circuit. The power button140 can include a switch configured to open or close the electroniccircuit. The power button 140 can include a low-power, momentarypush-button configured to send power to a microcontroller. Themicrocontroller can control an electronic switch.

The exoskeleton 100 can include a battery holder 170 (e.g., chargingstation, dock). The battery holder 170 can be coupled to the shin pad125. The battery holder 170 can be located below the knee of the user.The battery holder 170 can be located above the one or more housings 105enclosing the electronic circuitry. The exoskeleton 100 can include abattery module 145 (e.g., battery). The battery holder 170 can include acavity configured to receive the battery module 145. A coefficient offriction between the battery module 145 and the battery holder 170 canbe established such that the battery module 145 is affixed to thebattery holder 170 due to a force of friction based on the coefficientof friction and a force of gravity. The battery module 145 can beaffixed to the battery holder 170 absent a mechanical button ormechanical latch. The battery module 145 can be affixed to the batteryholder 170 via a lock, screw, or toggle clamp. The battery holder 170and the battery module 145 can be an integrated component (e.g.,integrated battery). The integrated battery can be supported by a frameof the exoskeleton 100 as opposed to having a separated enclosure. Theintegrated battery can include a charging port. For example, thecharging port can include a barrel connector or a bullet connector. Theintegrated battery can include cylindrical cells or prismatic cells.

The battery module 145 can power the exoskeleton 100. The battery module145 can include one or more electrochemical cells. The battery module145 can supply electric power to the exoskeleton 100. The battery module145 can include a power source (e.g., onboard power source). The powersource can be used to power electronics and one or more actuators. Thebattery module 145 can include a battery pack. The battery pack can becoupled to the one or more housings 105 below a knee of the user. Thebattery pack can include an integrated battery pack. The integratedbattery pack can remove the need for power cables, which can reduce thesnag hazards of the system. The integrated battery pack can allow thesystem to be a standalone unit mounted to the user's lower limb. Thebattery module 145 can include a battery management system 324 toperform various operations. For example, the system can optimize theenergy density of the unit, optimize the longevity of the cells, andenforce safety protocols to protect the user.

The battery module 145 can include a removable battery. The batterymodule 145 can be referred to as a local battery because it is locatedon the exoboot 100 (e.g., on the lower limb or below the knee of theuser), as opposed to located on a waist or back of the user. The batterymodule 145 can include a weight-mounted battery, which can refer to thebattery being held in place on the exoboots 100 via gravity andfriction, as opposed to a latching mechanism. The battery module 145 caninclude a water resistant battery or a waterproof battery. Theexoskeleton 100 and the battery module 145 can include water resistantconnectors.

The battery module 145 can include a high-side switch (e.g., positivecan be interrupted). The battery module 145 can include a ground that isalways connected. The battery module 145 can include light emittingdiodes (LEDs). For example, the battery module 145 can include threeLEDs used for a user interface. The LEDs can be visible from one lens sothat the LEDs appear as one multicolor LED. The LEDs can blink invarious patterns and/or colors to communicate a state of the batterymodule 145 (e.g., fully charged, partially charged, low battery, orerror).

The exoskeleton 100 can include a post 150. The post 150 can include amechanical structure that connects to the boot 110. The post 150 cancouple the ankle joint component 120 with the footplate 115. The post150 can be attached at a first end to the footplate 115. The post 150can be attached at a second end to the ankle joint component 120. Thepost 150 can pivot about the ankle joint component 120. The post 150 caninclude a mechanical structure that couples the footplate 115 with theankle joint component 120. The post 150 can include a rigid structure.The post 150 can be removably attached to the footplate 115. The post150 can be removably attached to the ankle joint component 120. Forexample, the post 150 can be disconnected from the ankle joint component120.

The exoskeleton 100 can include a rugged system used for field testing.The exoskeleton 100 can include an integrated ankle lever guard (e.g.,nested lever). The exoskeleton 100 can include a mechanical shield toguard the actuator belt 135 and ankle lever transmission from theenvironment. The housing structure of the system can extend to outlinethe range of travel of the ankle lever (e.g., lever arm 1140) on thelateral and medial side.

II. Active Exoskeleton with Local Battery

Exoskeletons 100 can transform an energy source into mechanical forcesthat augment human physical ability. Exoskeletons 100 can have uniquepower requirements. For example, exoskeletons 100 can use non-constantpower levels, such as cyclical power levels with periods of high power(e.g., 100 to 1000 Watts) and periods of low or negative power (e.g., 0Watts). Peaks in power can occur once per gait cycle. Batteriesconfigured to provide power to the exoskeleton 100 can be the source ofvarious issues. For example, batteries located near the waist of a usercan require exposed cables that extend from the battery to the lowerlimb exoskeleton. These cables can introduce snag hazards, make thedevice cumbersome, and add mass to the system. Additionally, long cableswith high peak power can result in excess radio emissions and highervoltage drops during high current peaks. Thus, systems, methods andapparatus of the present technical solution provide an exoskeleton witha local battery that can perform as desired without causing snaghazards, power losses, and radio interference. Additionally, the batterycan be located close to the knee such that the mass felt by the user isreduced as compared to a battery located close the foot of the user.

FIG. 2 illustrates a schematic diagram of the exoskeleton 100. Theexoskeleton 100 includes the one or more housings 105, the boot 110 thefootplate 115, the ankle joint component 120, shin pad 125, the actuator130, the actuator belt 135, the power button 140, the battery module145, the post 150, the rotary encoder 155, and the second rotary encoder160. The battery module 145 can be inserted into the exoskeleton 100.The battery module 145 can include a sealed battery. The battery module145 can coupled with the exoskeleton 100 via a waterproof or waterresistant connection. The battery module 145 can connect locally (e.g.,proximate) to the exoskeleton 100 such that a wire is not needed to runfrom the battery module 145 to the electronics.

The battery module 145 can be removably affixed to the battery holder170. For example, the battery module 145 can slide in and out of thebattery holder 170. By removably affixing the battery module 145 to thebattery holder 170, the battery module 145 can be replaced with anotherbattery module 145, or the battery module 145 can be removed forcharging. The battery module 145 can include a first power connector 205that electrically couples to a second power connector 210 located in thebattery holder 170 while attached to the battery holder 170 to provideelectric power to the electronic circuitry and the electric motor. Thefirst power connector 205 and the second power connector 210 can couple(e.g., connect) the battery module 145 with the electronic circuitry.The first power connector 205 and the second power connector 210 cancouple the battery module 145 with the one or more housings 105. Thefirst power connector 205 can be recessed in the battery module 145 toprotect the first power connector 205 from loading and impacts. Thefirst power connector 205 and the second power connector 210 can includewires (e.g., two wires, three wires, or four wires). The battery module145 can communicate with the electronic circuitry via the first powerconnector 205 and the second power connector 210. The first powerconnector 205 and the second power connector 210 can include an exposedconnector.

The geometry of the battery module 145 can allow for storage and packingefficiency. The battery module 145 can include a gripping element toallow for ergonomic ease of removal and insertion of the battery module145 into the battery holder 170. The battery module 145 can be made oflightweight plastics or metals. The battery module 145 can be made ofheat insulating materials to prevent heat generated by the battery cells305 from reaching the user. One or more faces of the battery module 145can be made of metal to dissipate heat.

The exoskeleton 100 can communicate with the battery module 145 duringoperation. The exoskeleton 100 can use battery management systeminformation to determine when safety measures will trigger. For example,during a high current peak (e.g., 15 A) or when the temperature is neara threshold, the power output can be turned off. The exoskeleton 100 cantemporarily increase safety limits for very specific use cases (e.g.,specific environmental conditions, battery life). The battery module 145can prevent the exoskeleton 100 from shutting down by going into a lowpower mode and conserving power. The exoskeleton 100 can put the batterymodule 145 in ship mode if a major error is detected and the exoskeleton100 wants to prevent the user from power cycling. The battery managementsystem 324 can be adapted to support more or less series cells, parallelcells, larger capacity cells, cylindrical cells, different lithiumchemistries, etc.

FIG. 3 illustrates a schematic diagram of an exoskeleton 100. Theexoskeleton 100 can include a motor 330. The motor 330 can generatetorque about an axis of rotation of an ankle joint of the user. Theexoskeleton 100 can include the battery module 145. The exoskeleton 100can include a computing system 300. The exoskeleton 100 can include oneor more processors 302, memory 304, and one or more temperature sensors306 (e.g., thermocouples). The one or more processors 302, memory 304,and one or more temperature sensor 306 can be located within thecomputing system 300. In some cases, the computing system 300 caninclude the batter balancer 308 as opposed to the battery module 145.

The one or more processors 302 can receive data corresponding to aperformance of the battery module 145. The data can include one or moreof a temperature, current, voltage, battery percentage, internal stateor firmware version. The one or more processors 302 can determine, basedon a safety policy, to trigger a safety action. The safety policy caninclude triggering the safety action if a threshold temperature, voltageor battery percentage is crossed. For example, the safety policy caninclude triggering the safety action if a temperature of one or more ofthe plurality of battery cells 305 is higher than a thresholdtemperature. The safety policy can include triggering the safety actionif a battery percentage of the battery module 145 is below a thresholdbattery percentage. The safety policy can include triggering the safetyaction if a measured temperature is higher than the thresholdtemperature. The measured temperature can include the temperature of theprinted circuit board and battery cells 305. The measured temperaturecan include the temperature of the printed circuit board and batterycells 305 measured in two locations. The safety policy can includetriggering the safety action if a measured voltage is higher than thethreshold voltage.

The one or more processors 302 can instruct, based on the safety action,the electronic circuitry to adjust delivery of power from the batterymodule 145 to the electric motor to reduce an amount of torque generatedabout the axis of rotation of the ankle joint of the user. The safetyaction can include lowering or reducing the amount of torque generatedabout the axis of rotation of the ankle joint of the user. The safetyaction can include increasing the amount of torque generated about theaxis of rotation of the ankle joint of the user.

The one or more temperature sensors 306 can be placed between theplurality of battery cells 305 to provide an indication of a temperaturebetween the plurality of battery cells 305. A temperature sensor of theone or more temperature sensors 306 can be mounted on the printedcircuit board to measure a temperature of the printed circuit board. Theelectronic circuitry 505 can control the delivery of power from thebattery module 145 to the electric motor based at least in part on theindication of the temperature between the plurality of battery cells 305or the temperature of the printed circuit board.

The one or more battery balancers 308 can be configured to activelytransfer energy from a first battery cell 305 of the plurality ofbattery cells 305 to a second battery cell 305 of the plurality ofbattery cells 305 having less charge than the first battery cell 305. Asignal trace 310 can electrically connect the plurality of battery cells305 to the one or more battery balancers 308. The signal trace 310 canbe located on the printed circuit board.

The exoskeleton 100 can include the battery module 145. The batterymodule 145 can include a plurality of battery cells 305, one or moretemperature sensors 306, one or more battery balancers 308, and abattery management system 324. The battery management system 324 canperform various operations. For example, the battery management system324 can optimize the energy density of the unit, optimize the longevityof the cells 305, and enforce the required safety to protect the user.The battery management system 324 can go into ship mode by electricallydisconnecting the battery module 145 from the rest of the system tominimize power drain while the system is idle. The battery managementsystem 324 can go into ship mode if a major fault is detected. Forexample, if one or more of the plurality of battery cells 305self-discharge at a rate higher than a threshold, the battery managementsystem 324 can re-enable the charging port.

While these components are shown as part of the exoskeleton 100, theycan be located in other locations such as external to the exoskeleton100. For example, the battery management system 324 or the computingsystem 300 can be located external to the exoskeleton 100 for testingpurposes.

FIG. 4 illustrates a schematic diagram of the exoskeleton 100. Theexoskeleton 100 can include the one or more housings 105, the footplate115, the ankle joint component 120, shin pad 125, the actuator 130, theactuator belt 135, the post 150, the rotary encoder 155, the secondrotary encoder 160, and the sealant 165 as described above. The one ormore housings 105 can be coupled to the shin pad 125. The post 150 cancouple the ankle joint component 120 with the footplate 115. Theactuator 130 can include the one or more housings 105, the footplate115, the ankle joint component 120, the actuator belt 135, and the post150. The rotary encoder 155 can measure an angle of the electric motor.The second rotary encoder 160 can measure an angle of the ankle joint.The sealant 165 can be placed in contact with the one or more housings105 to close the one or more housings 105 and prevent an ingress ofwater into the one or more housings 105.

FIG. 5 illustrates a schematic diagram of the exoskeleton 100 andinternal parts. The exoskeleton 100 can include the one or more housings105, the ankle joint component 120, the actuator 130, the power button140, the rotary encoder 155, the second rotary encoder 160, and thesealant 165 as described above. The internal parts can includeelectronic circuitry 505 (e.g., electronic circuit, circuitry,electronics). The electronic circuitry 505 can include individualelectronic components (e.g., resistors, transistors, capacitors,inductors, diodes, processors, or controllers). The power button 140 canbe electrically connected to the electronic circuitry 505. Theelectronic circuitry 505 can be located behind the electric motor. Theelectronic circuitry 505 can include the main electronics board. Therotary encoder 155 can be located between the motor and electroniccircuitry 505. The electronic circuitry 505 can control delivery ofpower from the battery module 145 to the electric motor to generatetorque about the axis of rotation of the ankle joint of the user.

FIG. 6 illustrates a side view of the exoskeleton 100. The exoskeleton100 can include the one or more housings 105, ankle joint component 120,the actuator 130, the rotary encoder 155, the second rotary encoder 160,the sealant 165, and electronic circuitry 505 as described above. Theexoskeleton 100 can include an output shaft 605 (e.g., motor rotor,spool shaft, pinion gear, spur gear, or toothed pulley). The outputshaft 605 can be coupled to the electric motor. The output shaft 605 canextend through a bore 610 in a housing of the one or more housings 105enclosing the electric motor. The bore 610 can receive the output shaft605. An encoder chip can be located on the electronics board on a firstside of the electric motor. The encoder chip can measure the angularposition of the rotary encoder 155. The exoskeleton 100 can include atransmission (e.g., gearbox) configured to couple the output shaft 605to the electric motor. The transmission can include a machine in a powertransmission system. The transmission can provide controlled applicationof power. The output shaft 605 can be integrated into the motor rotor.The output shaft 605 can be part of a mechanism (e.g., gears, belts,linkage, or change). An ankle shaft can extend through the second rotaryencoder 160 which can increase the structural integrity of theexoskeleton 100.

The exoskeleton 100 can include a first component of the fittedstructure 615 (e.g., first clamshell structure). The exoskeleton 100 caninclude a second component of the fitted structure 620 (e.g., secondclamshell structure). The first component of the fitted structure 615can be coupled with the second component of the fitted structure 620.The first component of the fitted structure 615 can be attached to thesecond component of the fitted structure 620 via the sealant 165 (e.g.,adhesive sealant). The first component of the fitted structure 615 canbe coupled to the second component of the fitted structure 620 such thatthe fitting prevents or decreases a rate of water flow into the interiorof the exoskeleton 100. The fitted structure can include two or morecomponents such that the assembly components prevents or decreases arate of water flow into the interior of the exoskeleton 100. The firstcomponent of the fitted structure 615 and the second component of thefitted structure 620 can be stationary components. The number ofindividual components of the fitted structure can be minimized todecrease the number of possible entry points for water to enter theexoskeleton 100. The possible entry points can include seams and/ormoving parts of the exoskeleton 100. The seams can be permanently sealedvia the sealant 165.

An adhesive sealant (e.g., super glue, epoxy resin, or polyvinylacetate) can be placed between the first component of the fittedstructure 615 and the second component of the fitted structure 620. Theadhesive sealant can prevent or decrease the rate of water flow throughthe seam between the first component of the fitted structure 615 and thesecond component of the fitted structure 620 into the interior of theexoskeleton 100. The adhesive sealant can be placed under theelectronics cover. The adhesive sealant can prevent or decrease the rateof water flow through the seam between the electronics cover and theexoskeleton one or more housings 105 into the interior of theexoskeleton 100.

A gasket can be placed between the first component of the fittedstructure 615 and the second component of the fitted structure 620. Thegasket can be placed in the seam between the first component of thefitted structure 615 and the second component of the fitted structure620. The gasket can prevent or decrease the rate of water flow throughthe seam between the first component of the fitted structure 615 and thesecond component of the fitted structure 620.

FIG. 7 illustrates a schematic diagram of the exoskeleton 100. Theexoskeleton 100 can include the one or more housings 105, the footplate115, the ankle joint component 120, the shin pad 125, the actuator 130,the post 150, the rotary encoder 155, the second rotary encoder 160, andthe sealant 165 as described above. The one or more housings 105 can becoupled to the shin pad 125. The post 150 can couple the ankle jointcomponent 120 with the footplate 115. The actuator 130 can include theone or more housings 105, the footplate 115, the ankle joint component120, and the post 150. The rotary encoder 155 can measure an angle ofthe electric motor. The second rotary encoder 160 can measure an angleof the ankle joint.

FIG. 8 and FIG. 9 illustrate schematic diagrams of the exoskeleton 100and internal parts. The exoskeleton 100 can include the one or morehousings 105, the footplate 115, the ankle joint component 120, shin pad125, the actuator 130, the post 150, the rotary encoder 155, the secondrotary encoder 160, the sealant 165, and electronic circuitry 505 asdescribed above. The internal parts can include an electronic circuit(e.g., circuitry). The electronic circuit can include individualelectronic components (e.g., resistors, transistors, capacitors,inductors, diodes, processors, or controllers). The motor rotor can beconnected to the output shaft 605.

FIG. 10 illustrates a side view of the exoskeleton 100. The exoskeleton100 can include the one or more housings 105, the actuator 130, therotary encoder 155, the second rotary encoder 160, and the sealant 165,the output shaft 605, and the bore 610 as described above. Theexoskeleton 100 can include an output shaft 605 (e.g., motor rotor). Theoutput shaft 605 can be coupled to the electric motor. The output shaft605 can extend through a bore 610 in a housing of the one or morehousings 105 enclosing the electric motor. The bore 610 can receive theoutput shaft 605. A magnet can be located on a first side of theelectric motor. An encoder chip can be located on the electronics boardon the first side of the electric motor. The encoder chip can measurethe angular position of the rotary encoder 155. An ankle shaft canextend through the second rotary encoder 160 which can increase thestructural integrity of the exoskeleton 100. The exoskeleton 100 caninclude a transmission (e.g., gearbox) configured to couple the outputshaft 605 to the electric motor. The transmission can include a machinein a power transmission system. The transmission can provide controlledapplication of power.

FIG. 11 illustrates a side view of an exoskeleton 100. The exoskeleton100 can include a motor 1105 (e.g., electric motor), a motor timingpulley 1110 (e.g., timing pulley), a motor timing belt 1115 (e.g.,timing belt), the second rotary encoder 160 (e.g., an ankle encoder PCB,ankle encoder printed circuit board, second rotary encoder PCB, or ankleencoder), an ankle shaft 1125, a motor encoder magnet 1130, a motorencoder 1135, a lever arm 1140 (e.g., ankle lever), and an ankle encodermagnet 1145. The ankle shaft 1125 can extend through the second rotaryencoder 160 to increase the structural integrity of the exoskeleton 100.The motor timing belt 1115 can be coupled to a sprocket 1150. Thesprocket 1150 can be coupled with a spool. The motor encoder magnet 1130can be located on the first side of the electric motor.

FIG. 12 illustrates a method 1200 of augmenting user motion. The method1200 can include providing, to a user, a battery-powered activeexoskeleton boot (BLOCK 1205). The battery-powered active exoskeletonboot can include a shin pad to be coupled to a shin of a user below aknee of the user. The battery-powered active exoskeleton boot caninclude one or more housings enclosing electronic circuitry and anelectric motor that can generate torque about an axis of rotation of anankle joint of the user. At least one of the one or more housings can becoupled to the shin pad below the knee of the user. The battery-poweredactive exoskeleton boot can include a battery holder coupled to the shinpad. The battery holder can be located below the knee of the user andabove the one or more housings enclosing the electronic circuitry. Thebattery-powered active exoskeleton boot can include a battery moduleremovably affixed to the battery holder. The battery module can includea first power connector that electrically couples to a second powerconnector located in the battery holder while attached to the batteryholder to provide electric power to the electronic circuitry and theelectric motor. The battery-powered active exoskeleton boot can includean output shaft coupled to the electric motor and extending through abore in a housing of the one or more housings enclosing the electricmotor. The electronic circuitry can control delivery of power from thebattery module to the electric motor to generate torque about the axisof rotation of the ankle joint of the user.

In some embodiments, the first power connector includes a bladeconnector. The second power connector can include a receptacleconfigured to receive the blade connector absent an exposed cable. Thebattery module can include a plurality of battery cells 305. The batterymodule can include a printed circuit board soldered to the plurality ofbattery cells 305. The battery module can include one or more batterybalancers configured to actively transfer energy from a first batterycell 305 of the plurality of battery cells 305 to a second battery cell305 of the plurality of battery cells 305 having less charge than thefirst battery cell 305. The battery module can include a signal trace,on the printed circuit board, that electrically connects the pluralityof battery cells 305 to the one or more battery balancers.

In some embodiments, the method 1200 includes providing, via a serialdata communication port of the first power connector, at least one ofbattery state data, a battery test function, a smart charging function,or a firmware upgrade. The battery state data can include the health ofthe battery module. The battery test function can include probing thebattery module. The smart charging function can include using a highvoltage to charge the battery module. A pin of the first power connectorthat provides serial data can be further configured to receive a voltageinput greater than or equal to a threshold to wake up a batterymanagement system of the battery module.

The method 1200 can include receiving data corresponding to batterymodule performance (BLOCK 1210). For example, the method 1200 caninclude receiving, by one or more processors of the battery-poweredactive exoskeleton boot, data corresponding to a performance of thebattery module, the data comprising one or more of a temperature,current, voltage, battery percentage. For example, the data can includea temperature from one or more temperature sensors of the computingsystem. The data can include a temperature from one or more temperaturesensors of the battery module.

The method 1200 can include determining to trigger a safety action(BLOCK 1215). For example, the method 1200 can include determining, bythe one or more processors, based on a safety policy, to trigger asafety action. The safety policy can include triggering the safetyaction if a threshold temperature, voltage or battery percentage iscrossed. For example, the safety policy can include triggering thesafety action if a temperature of one or more of the plurality ofbattery cells 305 is higher than a threshold temperature. The safetypolicy can include triggering the safety action if a battery percentageof the battery module is below a threshold battery percentage. Themeasured temperature can include the temperature of the printed circuitboard and battery cells 305. The measured temperature can include thetemperature of the printed circuit board and battery cells 305 measuredin two locations. The safety policy can include triggering the safetyaction if a measured voltage is higher than the threshold voltage.

The method 1200 can include instructing circuitry to adjust powerdelivery (BLOCK 1220). For example, the method 1200 can includeinstructing, by the one or more processors, based on the safety action,the electronic circuitry to adjust delivery of power from the batterymodule to the electric motor to reduce an amount of torque generatedabout the axis of rotation of the ankle joint of the user. The safetyaction can include lowering or reducing the amount of torque generatedabout the axis of rotation of the ankle joint of the user. The safetyaction can include increasing the amount of torque generated about theaxis of rotation of the ankle joint of the user.

FIG. 13 illustrates a block diagram of an architecture for a computingsystem employed to implement various elements of the system and methodsdepicted in FIGS. 1-16, according to an embodiment. FIG. 13 is a blockdiagram of a data processing system including a computer system 1300 inaccordance with an embodiment. The computer system can include orexecute a coherency filter component. The data processing system,computer system or computing device 1300 can be used to implement one ormore components configured to process data or signals depicted in FIGS.1-12 and 14-16. The computing system 1300 includes a bus 1305 or othercommunication component for communicating information and a processor1310 a-n or processing circuit coupled to the bus 1305 for processinginformation. The computing system 1300 can also include one or moreprocessors 1310 or processing circuits coupled to the bus for processinginformation. The computing system 1300 also includes main memory 1315,such as a random access memory (RAM) or other dynamic storage device,coupled to the bus 1305 for storing information, and instructions to beexecuted by the processor 1310. Main memory 1315 can also be used forstoring time gating function data, temporal windows, images, reports,executable code, temporary variables, or other intermediate informationduring execution of instructions by the processor 1310. The computingsystem 1300 may further include a read only memory (ROM) 1320 or otherstatic storage device coupled to the bus 1305 for storing staticinformation and instructions for the processor 1310. A storage device1325, such as a solid state device, magnetic disk or optical disk, iscoupled to the bus 1305 for persistently storing information andinstructions.

The computing system 1300 may be coupled via the bus 1305 to a display1335 or display device, such as a liquid crystal display, or activematrix display, for displaying information to a user. An input device1330, such as a keyboard including alphanumeric and other keys, may becoupled to the bus 1305 for communicating information and commandselections to the processor 1310. The input device 1330 can include atouch screen display 1335. The input device 1330 can also include acursor control, such as a mouse, a trackball, or cursor direction keys,for communicating direction information and command selections to theprocessor 1310 and for controlling cursor movement on the display 1335.

The processes, systems and methods described herein can be implementedby the computing system 1300 in response to the processor 1310 executingan arrangement of instructions contained in main memory 1315. Suchinstructions can be read into main memory 1315 from anothercomputer-readable medium, such as the storage device 1325. Execution ofthe arrangement of instructions contained in main memory 1315 causes thecomputing system 1300 to perform the illustrative processes describedherein. One or more processors in a multi-processing arrangement mayalso be employed to execute the instructions contained in main memory1315. In some embodiments, hard-wired circuitry may be used in place ofor in combination with software instructions to effect illustrativeimplementations. Thus, embodiments are not limited to any specificcombination of hardware circuitry and software.

Although an example computing system has been described in FIG. 13,embodiments of the subject matter and the functional operationsdescribed in this specification can be implemented in other types ofdigital electronic circuitry, or in computer software, firmware, orhardware, including the structures disclosed in this specification andtheir structural equivalents, or in combinations of one or more of them.

III. Customized Configuration for an Exoskeleton Device

Systems, methods and devices of this technical solution are directed toa user application to provide customized configuration for a controllerof an exoskeleton device. The augmentation provided by the exoskeletonto the user can be customized for the particular user based in part onfeedback from the user and feedback from the exoskeleton itself. Theexoskeleton device can provide a user application to the user throughthe exoskeleton device and/or a client device of the user to enable theuser to provide feedback during operation of the exoskeleton and tocustomer control of the exoskeleton device. For example, the user canwear one or more exoskeleton devices (e.g., right leg, left leg) duringdifferent activities including, but not limited to, walking or running.The exoskeleton devices can provide force or torque to the respectivelimb to reduce an amount of force provided by the user to perform themovement and reduce a physiological impact on the user during themovement. As force and/or torque is transferred from the exoskeletondevice to a limb of the user, a behavior of the user can be augmentedand a behavior of the exoskeleton device can be modified based in parton the behavior and/or performance of the user during the movement. Theuser can provide characteristics indicative of how the user isperforming during the movement and/or how the user is interacting withthe exoskeleton device to the exoskeleton device through the userapplication. The feedback can include audio feedback, tactile feedback,and/or data entered through the device. The exoskeleton can generate newcontrol parameters (e.g., force values, torque values) to provide theuser for the current movement and/or one or more subsequent movementsbased in part on the received user characteristics. The exoskeleton canchange or modify its behavior and output to the user to providecustomized control unique to the user of the exoskeleton device duringthe current movement and/or one or more subsequent movements.

Mobility exoskeleton devices and medical devices can employ a one sizefits all mentality and be targeted for particular use types and thus begeneralized for a large population to take advantage of the mobilityexoskeleton devices. For example, medical devices can be created for aspecific treatment, therapy type and/or body part to treat a wide rangeof patients having the corresponding issue and thus not customizable toa particular user. Further, medical devices can remove or limit usercontrol to over operation and device parameters. Medical devices such asbraces or prosthetics are intended to provide a determined level ofstiffness and eliminate or severely limit the ability of the user tochange or modify the function of the device.

The exoskeleton devices described herein can include a user applicationthat enables customization for an individual user to optimizecollaboration between the user and the exoskeleton and increase anindividual performance of the user preforming different movements andactivities while wearing the exoskeleton. The user can providecharacteristics and feedback through the user application to theexoskeleton for the exoskeleton to make informed determinations forappropriate levels of force and/or torque to provide to the particularuser. The exoskeleton can customize the movement augmentation providedthe user based in part on changing users needs, environmental conditionsand/or changes to the exoskeleton system. In some embodiments, theexoskeleton can customize the movement augmentation provided the userbased in part on characteristics or outputs of similar users to enablegroup level optimization. For example, the exoskeleton can determineappropriate levels of force and/or torque to provide to the particularuser based in part on the needs of the user and a group of users thatthat the respective user is included within (e.g., military team, sportsteam). As users change or modify their behavior using the exoskeletondevice (e.g., device augmentation), the exoskeleton device cancontinually update and modify its behavior to provide customized controlof the exoskeleton device and operation of the exoskeleton device.

The user application can be provided to the user through a clientapplication executing on a client device of the user. For example, insome embodiments, the user application can be a mobile application forthe user to provide characteristics to the exoskeleton device.Characteristics can include, but not limited to, personalcharacteristics (e.g., age, weight, height), an activity level of theuser (e.g., sedentary, light, moderate, active), a type of activity(e.g., walking, running, hiking, medical), user experience level withthe exoskeleton device (e.g., new user, experienced user), and/or alevel of augmentation. The user can customize setting of the exoskeletondevice for a particular activity, including, a distance of the activity,a desired battery life or battery needs for the activity and battermodes (e.g., power save mode, normal power mode). The user can connectand sync different sensors, for example, from different devices to theexoskeleton system (e.g., watch sensors, foot pod, heart rate sensor).The characteristic of the intended activity can be provided to theexoskeleton device through the user application including a startingpoint and end point of an intended route, total distance and/orestimated time for the activity.

The exoskeleton device can customize the augmentation for the user basedin part on the provided characteristics. The exoskeleton device candetermine characteristics of the intended activity and route, includingbut not limited to, terrain, altitude, and battery requirements. Usingthe user provided characteristics and the device determinedcharacteristics, the exoskeleton device can determine a percentage oramount of the battery power the intended activity and route will takeand present this information to the user through the user application.The exoskeleton device can provide feedback to the user through the userapplication, including but not limited to, battery power, missed stepflags (e.g., user missed step, device behaved in undesirable manner).

The user application can provide various forms of controllercustomization including real-time controller input from the user,pre-determined controller inputs, user defined controls, and/orpreviously determined controls. The customization can include controlparameters of the exoskeleton. For example, the user can request orenter a stiffness level for the exoskeleton and/or level of augmentationfor the exoskeleton device to provide to the user. The user applicationcan enable the user to provide timing criteria or actuation lag betweenor during movements and/or bilateral asymmetry settings for a respectivemovement. A transparency of the exoskeleton can be controlled by theuser to select how sensitive the exoskeleton is to different events,such as gait transitions or transitions between different types ofactivities (e.g., walking to running).

Referring to FIG. 14, depicted is a block diagram of one embodiment of asystem 1400 having an exoskeleton boot 100 and an application 1472provided through a device 1470 (e.g., client device) to enable userfeedback and provide a customized configuration for a controller 1402 ofthe exoskeleton boot 100. The exoskeleton boot 100 can be worn by auser, for example, with one exoskeleton boot 100 on each lower limb(e.g., right leg, left leg), to aid the user in performing movements1412 and/or activities (e.g., walking, running, hiking). The exoskeletonboots 100 described herein can provide a feedback system through theapplication 1472 (e.g., user application) for a user to interact with anexoskeleton boot 100 to provide movement characteristics (e.g., limbmovement, joint movement, measurements) of the user during a movement1412 and enable the controller 1402 of the exoskeleton boot 100 togenerate customized control parameters 1410 for future or subsequentmovements 1421 performed by the user wearing the exoskeleton boot 100.The exoskeleton boot 100 can include a customized configuration foroperating the respective exoskeleton boot 100, customized for theparticular user.

The feedback system can include the application 1472 provided to theuser through the exoskeleton boot 100 and/or a device 1470 (e.g., phoneapplication, smartwatch application, computer application). The user canenter different characteristics and/or measurements (e.g., age, weight,height, activity level, type of activity) to customize the control ofthe exoskeleton boot 100 for the user. The feedback from the user caninclude, but is not limited to, audio feedback, tactile feedback, hapticfeedback and/or text or data entered through the user application 1472.The exoskeleton boot 100 can generate control parameters 1410 based inpart on the provided user performance characteristics and/ormeasurements. The exoskeleton boot 100 can update or modify controlparameters 1401 (e.g., in real-time) during a current movement 1412based in part on the provided user performance characteristics and/ormeasurements to improve a performance of the user during the movement1412. The exoskeleton boot 100 can generate control parameters 1410indicating a torque 1414 or power 1416 to provide to a respective limbof the user through the exoskeleton boot 100 to reduce an amount offorce provided by the user to perform the movement 1412 and reduce aphysiological impact on the user during the movement 1412. Theexoskeleton boot 100 an augment or otherwise change a behavior of theuser while performing different movements 1412. The exoskeleton boot 100can provide notifications 1450 in the form of visual, haptic and/oraudio feedback to the user to indicate if changes were made, whatchanges were made and/or indicate if the respective exoskeleton boot 100is behaving appropriately during a current or active movement 1412. Theexoskeleton boot 100 can modify or change its behavior (e.g., torqueoutput, power output) based in part on the behavior and/or performanceof the user during the movement 1412 and through the feedback system ofthe application 1472 to provide a customized and configurable userexperience. The exoskeleton boot 100 can be the same as or substantiallysimilar to exoskeleton 100 described herein with respect to FIG. 1 orany type of exoskeleton described herein.

The exoskeleton boot 100 an include a controller 1402. The controller1402 can be implemented using hardware or a combination of software andhardware. For example, each component of the controller 1402 can includelogical circuity (e.g., a central processing unit or CPU) that responsesto and processes instructions fetched from a memory unit (e.g., memory1404). Each component of the controller 1402 can include or use amicroprocessor or a multi-core processor. A multi-core processor caninclude two or more processing units (e.g., processor 1406) on a singlecomputing component. Each component of the controller 1402 can be basedon any of these processors, or any other processor capable of operatingas described herein. Each processor can utilize instruction levelparallelism, thread level parallelism, different levels of cache, etc.For example, the controller 1402 can include at least one logic devicesuch as a computing device having at least one processor 1406 tocommunicate, for example, with one or more client devices 1470, one ormore exoskeleton boots 100 and/or one or more other controllers 1402 ofone or more other exoskeleton boots 100. The components and elements ofthe controller 1402 can be separate components or a single component.The controller 1402 can include a memory component (e.g., memory 1404)to store and retrieve sensor data 1442 and control parameters 1410. Thememory 1404 can include a random access memory (RAM) or other dynamicstorage device, for storing information, and instructions to be executedby the controller 1402. The memory 1404 can include at least one readonly memory (ROM) or other static storage device for storing staticinformation and instructions for the controller 1402. The memory 1404can include a solid state device, magnetic disk or optical disk, topersistently store information and instructions. The controller 1402 canbe the same as or substantially similar to any controller ormicrocontroller described herein.

The controller 1402 and/or exoskeleton boot 100 can generate one or morecontrol parameters 1410. The control parameters 1410 can include acommand, an instruction, task or function provided to an exoskeletonboot 100 to instruct the exoskeleton boot 100 to generate target levelor amount of torque, force, velocity or a combination of torque, forceand velocity (e.g., impedance) and aid a user wearing the respectiveexoskeleton boot 100 in performing a movement 1412. The controlparameters 1410 can include a data structure indicating a desired,requested or target torque, force and/or velocity level (e.g., torque1414, power 1416). The control parameters 1410 can include, but are notlimited to, battery requirements, power level, and/or power levels foran exoskeleton boot 100.

The controller 1402 and/or exoskeleton boot 100 can generatenotifications 1450 to notify a user or operator of an exoskeleton boot100 of changes in output (e.g., torque 1414, power 1416) of theexoskeleton boot 100 or operation of the exoskeleton boot 100. Thenotifications 1450 can include an alert, message, command, set ofinstructions or data structure. The notifications 1450 can includevisual notifications, haptic notifications, tactile notifications and/oraudio notifications, for example, provided through the application 1472to provide feedback to the user to indicate if changes were made, whatchanges were made and/or indicate if the respective exoskeleton boot 100is behaving appropriately. In embodiments, the notifications 1450 caninclude a message or alert indicating the user is not using theexoskeleton boot 100 appropriately (e.g., moving too slowly, moving toofast, coordination issues, body positioning issues) or that theexoskeleton boot 100 is not working correctly (e.g., power outputissues, connection issues). The controller 1402 can use thenotifications 1450 to communicate with a user or operator of theexoskeleton boot 100 to provide feedback to the user during one or moremovements 1412 or activities performed by the user.

The controller 1402 and exoskeleton boot 100 can connect with, includeor couple with a plurality of different sensors 1440 to monitor anddetect device characteristics, user characteristics, biometrics,measurements, sensor data 1442, and/or properties of a route. Thesensors 1440 can include a variety of different sensors to detect ormeasure, such as but is not limited to, device properties, gait state,joint angles, speed, and/or body positioning information. The sensors1440 can include, but are not limited to, IMU sensors, joint anglesensors, motor sensors, voltage sensors, current sensors, temperaturesensors, angle sensors, positional sensors, torque sensors, forcesensors, velocity, accelerations, energy sensors, power sensors, and/orbattery sensors. The sensors 1440 can include inertial measurement unit(IMU) sensors, goniometer, pedometer, infrared reflectors, force plates,electromyography (EMG), and/or heartrate monitors or sensors. Thesensors 1440 can connect to or couple to couple to a client device 1470and/or the application 1472 and the client device 1470 and/orapplication 1472 can communicate and/or exchange data with thecontroller 1402 through a connection 1462. In embodiments, additionalsensor data can be received from network 1460 and received by the clientdevice 1470, the application 1472 and/or the controller 1402.

The sensor data 1442 can include, but is not limited to, motion data,force data, torque data, temperature data, speed, gait transitions(e.g., gait event), angle measurements (e.g., of different joints of theuser, joint angle measurements), biometrics, step count and/or movementinformation. The sensor data 1442 can include data corresponding tosteady state activities or transient activities. The sensor data 1442can include any form of data associated with, corresponding to orgenerated in response one or more movements 1412 and/or activitiesperformed or executed by the user wearing one or more exoskeleton boots100. For example, the sensor data 1442 can include data associated witha movement 1412 or motion performed or executed by the user and/or anytype of use of one or more muscles of the user, for example, that maynot involve motion (e.g., holding a position, standing) while wearingthe exoskeleton boot 100. The sensor data 1442 can include ankle jointdata, inertial measurement unit data, and/or battery data, power leveldata.

The sensor data 1442 can include inertial measurement unit (IMU) data,goniometer data, infrared reflector data, force plate data,electromyography (EMG) data, and heartrate data. The sensor data 1442can include data corresponding to motor values, voltage values, current,temperature, positional, state information, walking, running, gaitstate, stance, stance begin and end, swing, swing begin and end, peakplantarflexion, peak dorsiflexion, heel strike, toe off, body segmentpositions, orientations, velocity, acceleration, energy, power, powerlevels, battery, capacity, safety, warnings, and/or errors.

The controller 1402 and/or exoskeleton boot 100 can maintain one or moreuser profiles 1420. The user profile 1420 can include a data structureor entry in a database of the memory 1404 of the exoskeleton boot 100for storing and maintained a plurality of user profiles 1420. The userprofiles 1420 can be organized by user such that each a unique userprofile 1420 is generated and maintained for each user, for example,during an initial use or operation of the exoskeleton boot 100. The userprofiles 1420 can include historical sensor data for a user from one ormore previous movements 1412 or activities performed by the user wearingthe exoskeleton boot 100. The user profile 1420 can include sensor data1442 generated and/or received during one or more previous movements1412 or activities performed by the user wearing the exoskeleton boot100. The user profile 1420 can include control parameters 1410 generatedfor one or more previous movements 1412 or activities performed by theuser wearing the exoskeleton boot 100 and/or one or more futuremovements 1412 to be performed by the user wearing the exoskeleton boot100. The user profile 1420 can include characteristics 1424 of the user,including but not limited to, personal characteristics, age, weight,height, gate information, a type of activity (e.g., walking, hiking,running, commuting, medical), activity level (e.g., sedentary, lightly,moderately, extremely active), experience level (e.g., experience withan exoskeleton system, novice, beginner, intermediate, advanced,expert), a level of augmentation (e.g., requested level of aid forupcoming activity using the exoskeleton), mode settings, additionalsensor identification (e.g., sensors of other device user is wearing,heart rate, foot pod), limits, configuration data, and/or battery mode(e.g., power saver, average, extreme mode). In some embodiments, thecharacteristics 1424 can be determined, identified, learned or detectedby an exoskeleton device 100.

The controller 1402 and/or exoskeleton boot 100 can maintain one or moregroup profiles 1422. The group profile 1422 can include a group of usersinvolved in a common activity (e.g., military unit on a trainingmission, adventure group hiking) and/or a group of users having similaruser characteristics (e.g., age, weight, height, gender, skill level,activity level).

The group profile 1422 can include or link together a plurality of userprofiles 1420 for a plurality of different users. The controller 1402can use information from multiple different users and/or user profiles1420 to generate control parameters 1410 for one or more users linked inthe group profile 1422. In some embodiments, the controller 1402 canlink multiple user profiles 1420 in a group profile 1422 forcommunications between exoskeleton boots 100 or devices worn by thedifferent users participating in a common or group activity. Forexample, the group profile 1422 can enable communications between amilitary unit having two or more members such that the exoskeleton boots100 worn by each user can communicate with one or more or all of theexoskeleton boots 100 worn by any of the other users in the respectivegroup and generate control parameters 1410 using a larger data set(e.g., sensor data 1442 from each exoskeleton boot 100 in the group).

The movement 1412 can include any type of motion performed or executedby user and/or any type of use of one or more muscles of the user, forexample, that may not involve motion (e.g., holding a position,standing). The movement 1412 can include can include, but is not limitedto, physical activity, walking, running, standing, standing up, ascendor descend a surface (e.g., stairs), jogging, springing, jumping (e.g.,single leg or both legs) squat, crouch, kneel or kick. The movement 1412can include, but is not limited to, walking, running, gait state, gaittransition (e.g., walking to running), stance begin and end, swing,swing begin and end, peak plantarflexion, peak dorsiflexion, heelstrike, and/or toe off

The controller 1402 and/or exoskeleton boot 100 can identify, determine,learn or detect one or more routes 1426. A route 1426 can include acourse, a planned path, a distance to be traversed or traveled by auser, an unplanned path (e.g., actively changing path), and/or any typeof way traveled by a user from a starting point to an end point. Thecontroller 1402 and/or exoskeleton boot 100 can receive a route 1426and/or route properties 1428 prior to a user starting the route 1426.The controller 1402 and/or exoskeleton boot 100 can determine or learn aroute 1426 and/or route properties 1428 as a user is attempting theroute 1426 or traversing the route 1426, for example, in real-time.

The controller 1402 and/or exoskeleton boot 100 can maintain one or morepreviously completed, attempted or planned routes 1426 in a database,user profile 1420 and/or group profile 1422. The route properties 1428can include any type of detail, information, or description of a route1426. The route properties 1428 can include, but are not limited to,limited to, a starting point, end point, global positioning system (GPS)data/coordinates, topology information, location information, altitudeof one or more portions of the route 1426 and/or terrain details (e.g.,water, land, swamp) of one or more portions of the route 1426.

The controller 1402 and/or exoskeleton boot 100 can generate a score1452 indicating a rating, classification or ranking of a performance ofthe user during a movement 1412 using the exoskeleton boot 100. Thescore 1452 can be generated based in part on received sensor data 1442for a movement 1412 and baseline parameters or target measurements forthe respective movement 1412. For example, the movement 1412 may includebaseline parameters or target sensor measurements (e.g., speed, timingof gait transitions, joint angle measurements). The baseline parameterscan include general performance guidelines (e.g., parameters for ageneral population or large set of users). The target measurements basedin part on the user characteristics, sensor data 1442 from a userprofile 1420 of the user, sensor data 1442 from a group profile 1422associated with the user, a performance of the user during one or moreprevious movements 1412 (e.g., same movements, similar movements,different movements) and/or a performance of one or more similar usersduring one or more previous movements 1412 (e.g., same movements,similar movements, different movements). The controller 1402 can comparethe received sensor data 1442 from an active movement 1412 (e.g., inprogress) or most recent movement 1412 to the baseline parameters and/ortarget measurements to determine how well the user is performing and togenerate a score 1452. The score 1452 can indicate how well the userperformed in view of the baseline parameters and/or target measurements(e.g., exceeded, met, reached, well below). The score 1452 can include adata structure, message or alert provided to the user, for example,through the application 1472 executing on the client device 1470 orexoskeleton boot 100.

The controller 1402 and exoskeleton boot 100 can determine and display abattery display 1430 that includes or correspond to a level of thebattery of the exoskeleton boot 100, a battery life and/or a measure ofthe battery performance and longevity of the battery of the exoskeletonboot 100. The battery 1430 can indicate a battery status meter, abattery charge level, a remaining battery life of the battery of theexoskeleton boot 100 and/or a battery life needed to complete a movement1412. In some embodiments, the exoskeleton boot 100 and/or application1472 can display or provide a first battery indicator 1430 indicating acurrent battery status and a second battery display 1430 indicating abattery life needed to complete a current movement 1412, activity and/ormission.

The controller 1402 and exoskeleton boot 100 can determine and displayan augmentation display 1432 or multiple augmentation display 1432, forexample, one augmentation display 1432 for each leg (e.g., left lowerlimb, right lower limb). The augmentation display 1432 can indicate alevel of aid or power that a respective exoskeleton boot 100 isoutputting or providing to a user.

The controller 1402 and exoskeleton boot 100 can generate and display anaugmentation slider (e.g., slider 1510 of FIGS. 15A-15B) for theaugmentation 1432 configured to receive a user interaction and modify alevel of the augmentation 1432 output or provided by a respectiveexoskeleton boot 100. In embodiments, the slider can be displayedthrough the application 1472 and/or a display of the exoskeleton boot100. The slider can include a visual indication displaying differentlevels of augmentation 1432 available to user through the exoskeletonboot 100. The slider can move between the different levels ofaugmentation 1432, for example, for a user or operator to select adesired level of augmentation 1432 for a current movement 1412 or futuremovement 1412. In embodiments, the slider can receive a user interaction(e.g., click on, touch, hover, selection) and generate and transmit asignal or instructions to the controller 1402 and/or exoskeleton boot100 to modify the level of the augmentation 1432 to the level selectedby the user or operator of the exoskeleton boot 100.

The controller 1402 and exoskeleton boot 100 can determine and display astep count 1436 indicating a number of steps taken or performed by theuser during a current or active movement 1412. In embodiments, thecontroller 1402 can receive sensor data 1442 such as from a pedometerconnected to the exoskeleton boot 100 or the user (e.g., shoe, watch)and continuously determine and update the step count 1436 during themovement 1412. The controller 1402 and exoskeleton boot 100 candetermine if the internal step count should be used or applied duringthe movement 1412, and/or use an external step count received fromadditional sensors, for example, sensors connected to the controller1402 (e.g., pedometer). The controller 1402 can display the step count1436 to a user through the application 1472 and/or a display of theexoskeleton boot 100

The controller 1402 and exoskeleton boot 100 can determine a rangecalculation 1438 for a current movement 1412 or future movement 1412 oractivity. The range calculation 1438 can include a distance for a routeor path of a movement 1412 or activity. The range calculation 1438 caninclude an estimated distance for a route of a movement 1412 based inpart on provided properties of a route (e.g., start point, end point,terrain, altitude). The properties of a route can include, but are notlimited to, type of activity, distance, start point, end point, terrain,or altitude. The range calculation 1438 can be provided in any unit oflength (e.g., U.S. customary units, international system of units (SI)),unit of measure or metric for measuring or determining distance,including but not limited to, miles, feet, meters, and/or kilometers. Insome embodiments, the controller 1402 can generate multiple rangecalculation 1438 displays, for example, simultaneously. For example, thecontroller 1402 can generate a first range calculation 1438 showing atotal distance for a route, a second range calculation 1438 showing adistance already traveled and/or a third range calculation 1438 showinga remaining distance. The controller 1402 can update or modify the rangecalculation 1438 or multiple range calculations 1438 during a movement,for example, in real-time as the user performs the respective movement1412. The controller 1402 can display the range calculation 1438 ormultiple range calculations 1438 to a user through the application 1472and/or a display of the exoskeleton boot 100.

An application 1472 (e.g., user application, client application) can beprovided to or deployed at the client device 1470 to enable a user tointeract with an exoskeleton boot 100, receive feedback and/or providefeedback during one or more movements 1412 using the exoskeleton boot100. The application 1472 can be any script, file, program, application,set of instructions, or computer-executable code, that is configured toenable a computing device (e.g., client device 1470) on which theapplication 1472 is executed to interact with the controller 1402 and/orexoskeleton boot 100. The application 1472 can establish a connection1462 (e.g., session) with the controller 1402 and/or exoskeleton boot100 to receive content from the controller 1402 and/or exoskeleton boot100 and/or provide content to the controller 1402 and/or exoskeletonboot 100. In embodiments, the application 1472 (e.g., app, mobileapplication, etc.) can be used to deliver various functionalities. Forexample, the application 1472 can familiarize the user with the lowerlimb exoskeleton components. The application 1472 can teach the user howto connect the mobile application to the lower limb exoskeletons. Theapplication 1472 can teach the user how to don and doff the lower limbexoskeleton. The application 1472 can teach the user how to charge andcare for the battery. The application 1472 can teach the user how totrain the controller to achieve personalized care. The application 1472can teach the user how to read measurements of recovery. The application1472 can teach the user how to manually adjust the controller topreference.

The device 1470 can include, but not limited to a client device, acomputing device or a mobile device. The device 1470 can include orcorrespond to an instance of any client device, mobile device orcomputer device described herein. For example, the client device 1470can be the same as or substantially similar to computing system 300 ofFIG. 3 or computing system 1300 of FIG. 13. The device 14710 can includea display 1444. The display 1444 can be the same as or substantiallysimilar to display 1335 of FIG. 3. The display 1444 can include, but isnot limited to, a liquid crystal display, or active matrix display, fordisplaying information to a user. The display 1444 can include a touchscreen display, for example, for a user to provide feedback through theuser application 1472 to one or more exoskeleton boots 100. The display1444 can be a component of an exoskeleton boot 100 or a device 1470.

A user interface 1446 (e.g., input device) can couple with or connect tothe display 1444 and application 1472 to, for example, enable a user tointeract with content provided through the display 1444 and application1472. The user interface 1446 can include a graphical user interface(GUI) (e.g., a touchscreen, a display, etc.) and one or moreinput/output (I/O) devices (e.g., a mouse, a keyboard, a microphone, oneor more speakers, one or more cameras, one or more biometric scanners,one or more environmental sensors, one or more accelerometers, etc.). Insome embodiments, the user interface 1446 can be configured to receiveaudio feedback, tactile feedback and/or haptic feedback. In someembodiments, the user interface 1446 can include a microphone or audioreceiver to receive or detect an audio signal (e.g., user talking, audiofeedback) and/or provide an audio signal (e.g., provide audio feedbackto the user). The user interface 1446 can include enable userinteraction with content provided through the display 1444 and/orapplication 1472 and responsive to an interaction (e.g., select,click-on, touch, hover, audio), can generate a signal or responseidentifying a user input and/or selection of at least one content itemprovided to the user through the display 1444 and/or application 1472.The user interface 1446 can couple to or connect with the exoskeletonboot 100 and/or controller 1402 to provide the signal or response. Theuser interface 1446 can be the same as or substantially similar to theinput device 1330 described above with respect to FIG. 13.

In embodiments, the client device 1470 and/or application 1472 canestablish one or more connections 1462 to communicate with one or moreother controllers 1402 (e.g., controllers of other exoskeleton devices)and/or one or more other exoskeleton boots 100. In some embodiments, thecontroller 1402 and/or exoskeleton 100 can establish one or moreconnections 1462 to communicate with one or more other controllers 1402(e.g., controllers of other exoskeleton devices) and/or one or moreother exoskeleton boots 100. The connection 1462 can include a link,channel, or session between two or more controllers 1402 and/or two ormore exoskeleton boots 100. The connection 1462 can include an encryptedand/or secure sessions established between two or more controllers 1402and/or two or more exoskeleton boots 100. The encrypted connection 1462can include an encrypted file, encrypted data or traffic transmittedbetween the between two or more controllers 1402 and/or two or moreexoskeleton boots 100. The controller 1402 can include a communicationsinterface to enable the controller 1402 to access a computer networksuch as a LAN, a WAN, or the Internet through a variety of wired and/orwireless or cellular connections, for example, to establish a connection1462.

In some embodiments, the connection 1462 can include a wirelessconnection or a Bluetooth connection. For example, the controller 1402can use data (e.g., sensor data 1442) received via wirelesscommunication (e.g., wireless connection 1462). In some embodiments, theexoskeleton boot 100 can include a bar code or tag that can be scannedby a client device 1470 or input device (e.g., scanner) connected to theclient device 1470 to establish a connection 1462 between the clientdevice 1470 and the exoskeleton boot 100. For example, the exoskeletonboot 100 can include, but is not limited to a quick response (QR) codeor near field communication (NFC) tag and a scanner of or connected tothe client device 1470 can scan or read the QR code or NFC tag to pairthe exoskeleton boot 100 to the client device 1470. The network 1460 caninclude one or more private networks such as a local area network (LAN)or a company Intranet, and/or a public network, such as a wide areanetwork (WAN) or the Internet. The network 1460 can include cell-phonenetworks: 4G, 5G, LTE, etc. The properties of the connection 1462 (e.g.,wireless connection) can change or be modified based in part on aproperties of the client device 1470 and/or a type of connection betweenthe client device 1470 and the controller 1402 or exoskeleton boot 100.For example, in embodiments, the client device 1470 can include apersonal computer and establish a Bluetooth type connection 1462 (e.g.,Bluetooth 2.0 EDR) between the client device 1470 and controller 1402and exoskeleton 100. In some embodiments, the client device 1470 caninclude a mobile device and establish a Bluetooth low energy connection1462 between the client device 1470 and controller 1402 and exoskeleton100 and the client device 1470 can detect the type and properties of theconnection 1462 and select the appropriate protocol. In embodiments, theproperties of the connection 1462, the type of information communicated,number of variables, data rate and/or exchange rate of the connectioncan be modified and/or adjusted based in part on the type of connection1462 and devices using the connection 1462 to communicate.

The server 1490 can include a remote computing device and/or cloudcomputing device or service. The server 1490 can include a database tostore and maintain one or more user profiles 1420 and one or more groupprofiles 1422. The client device 1470, application 1472, controller 1402and/or exoskeleton boot 100 can connect to server 1490 through network1460 and one or more connections 1462 to access user data including, butnot limited to, a user profile 1420, group profile 1422, settings,account data, step count data 1436, walking controller models, and/orother forms of statistics recorded for a user. The server 1490 cantransmit the data from the user profiles 1420 and/or group profiles 1422to aid on or to augment computing capabilities (e.g., machine learningtraining) of the client device 1470 and/or exoskeleton boot 100. Inembodiments, the client device 1470, application 1472, controller 1402and/or exoskeleton boot 100 can connect to server 1490 through network1460 and one or more connections 1462 to store or upload user dataincluding, but not limited to, a user profile 1420, group profile 1422,settings, account data, step count data 1436, walking controller models,and/or other forms of statistics recorded for a user. The client device1470, application 1472, controller 1402 and/or exoskeleton boot 100 canuse the data from server 1490 to generate or process walking profiles,movement profiles from one or more users and/or determine an optimalprofile to provide to a current or next user of the exoskeleton boot100. In some embodiments, the server 1490 can store and maintainsoftware updates (e.g., firmware updates) for the client device 1470,application 1472, controller 1402 and/or exoskeleton boot 100. In oneembodiment, the server 1490 can transmit and provide firmware updates(e.g., wireless updates, over the air updates) to the client device1470, application 1472, controller 1402 and/or exoskeleton boot 100 whennew updates are generated and/or at determined intervals (e.g., weekly,monthly, etc.) through the network 1460 and connections 1462. In oneembodiment, the client device 1470 can include or be programmed as apass-through device and the server 1490 can use client device 1470 toperform read and/or write operations to and/or from controller 1402and/or exoskeleton boot, for example, by bypassing settings (e.g.,application settings) previously established. In embodiments, the clientdevice 1470 can provide, enable or allow users to control an exoskeletonboot 100 using an accessible handheld computing device or mobile phone.

Referring to FIGS. 15A-15B, depicted are block diagrams 1500, 1540 ofdifferent embodiments of an application 1472 deployed at a client device1470. FIG. 15A depicts an illustrative diagram 1500 of a userapplication 1472 provided through a display 1444 of a client device 1470and showing one embodiment or arrangement of feedback and/or interactiveelements for a user to provide feedback to one or more exoskeletondevices 100. In embodiments, FIG. 15B depicts a diagram 1540 of a userapplication 1472 provided through a display 1444 of a client device 1470with a slider 1510 at different augmentation levels to modify anaugmentation value 1432 of one or more exoskeleton devices 100responsive to feedback from the user via the slider 1510. Theapplication 1472 can be deployed at or executing at the client device1470 to enable a user to interact with a controller 1402 of anexoskeleton boot 100, for example, to receive feedback and/or providefeedback. The feedback can include performance metrics, routeproperties, properties of the exoskeleton boot 100 and/orcharacteristics of the user. The application 1472 can be generated ordesigned in a plurality of different layouts based in part on the clientdevice 1470 and/or feedback requested by a user of the exoskeleton boot100. The embodiments of FIGS. 15A-15B provide two embodiments of theplurality of different layouts or information the application 1472 canprovide to a user of an exoskeleton boot 100, however it should beappreciated that the presentation and/or layout of the application 1472and elements and values provided through the application 1472 caninclude other presentations and/or layouts beyond those depicted inFIGS. 15A-15B. In some embodiments, the presentation and/or layout ofthe application 1472 and elements and values provided through theapplication 1472 can be selected, modified, or determined based in parton the properties of the device 1470, display 1444, user preferences,user feedback and/or a movement 1412 and/or route 1426.

The application 1472 can generate and display one or more indicators toindicate a status or value or the performance metrics, route properties,properties of the exoskeleton boot 100 and/or characteristics of theuser. The application 1472 include a power status 1502. The power status1502 can indicate a current power status (e.g., power on, power off) ofthe exoskeleton boot 100 the application 1472 is connected to and/orcommunicating with. The application 1472 include a power selection 1504.The power selection 1504 can power on or power off the application 1472and end a connection 1462 to the exoskeleton boot 100. The powerselection 1504 can power on or power off the exoskeleton boot 100 theapplication 1472 is connected to and/or communicating with.

The application 1472 include a connection status 1506. The connectionstatus 1506 can indicate the status of the connection 1462 between theclient device 1470 and the controller 1402 and/or exoskeleton boot 100.The connection status 1506 can indicate a type of connection 1462between the client device 1470 and the controller 1402 and/orexoskeleton boot 100, for example, but not limited to, Bluetoothconnection or wireless connection. The application 1472 include abattery status 1430. The battery status 1430 can indicate a currentbattery level of the exoskeleton boot 100 the application 1472 isconnected to and/or communicating with or a remaining battery life ofthe exoskeleton boot 100 the application 1472 is connected to and/orcommunicating with. The application 1472 can include multiple batterystatus 1430, for example, a first battery status 1430 to indicate acurrent battery level of the exoskeleton boot 100 and a second batterystatus 1430 to indicate a battery life needed to complete a movement1412 (e.g., activity, mission, multiple planned movements).

The application 1472 include a range value 1438. The range value 1438can indicate estimated distance for a planned or upcoming movement 1412or activity. The range value 1438 can be determined based in part onparameters provided by a user, through the application 1472, for theplanned or upcoming movement 1412 or activity. The application 1472 caninclude multiple range values 1438, for example, a first range value1438 to indicate a total distance of a movement 1412 and a second rangevalue 1438 to indicate a remaining distance for the movement 1412. Insome embodiments, the device 1470 and/or exoskeleton boot 100 can accessor connect to a server (e.g., cloud server, remote server, third partyserver) to access or retrieve location information, GPS coordinatesand/or a topology of an intended route. The device 1470 or exoskeletonboot 100 can determine the range value 1438 using the data accessed fromthe server and provide the range value 1438 to the user through theapplication 1472.

The application 1472 include a slider 1510 and one or more augmentationdisplays 1432. The augmentation display 1432 can indicate a level of aidor power that a respective exoskeleton boot 100 is outputting orproviding to a user. The augmentation display 1432 can indicate a levelof augmentation selected by the user through the slider 1510 for anexoskeleton boot to provide to a user during a movement 1412. The slider1510 can include an input device indicator or user interaction toolconfigured to receive a user interaction and generate a signalindicating a desired level of augmentation based in part on a movementof the slider 1510. The slider 1510 can include a touch screen elementconfigured to move across a portion of the display 1444 betweendifferent levels of augmentation, such that in response to a userinteraction (e.g., touch, swipe, touch, slide and release), the user canselect a desired level of augmentation by moving the slider 1510 betweenthe different levels of augmentation. The application 1472 can determinea position of the slider 1510 when the slider 1510 is done moving anddetermine the selected level of augmentation and generate a signal tothe controller 1402 and/or exoskeleton boot 100 indicating the selectedlevel of augmentation. In embodiments, the slider 1510 can be used toselect a level of augmentation before and/or during a movement 1412. Thedevice 1470 through the application 1472 can update or modify theaugmentation display 1432 responsive to the user interaction with theslider 1510, for example, to increase a level of augmentation provide anexoskeleton boot 100 or to decrease a level of augmentation provide anexoskeleton boot 100. The augmentation display 1432 can display acurrent or selected level of augmentation to the user to providefeedback to the user and indicate the current level of augmentationbeing provided or to be provided through the one or more exoskeletonboots 100.

The application 1472 include one or more step count 1436 indicators. Forexample, the application 1472 can generate a first step count 1436indicator for a first foot (e.g., left foot) and a second step count1436 indicator for a second, different foot (e.g., right foot). The stepcount indicators 1436 can indicate a number of steps taken or performedby a user during a current movement 1412 or activity. The step count1436 can pro generated and displayed through the application 1472 indifferent forms, for example but not limited to, a bar graph or as adigital value (e.g., total number of steps for both feet, total numberof steps for each foot individually). The application can include apower value 1416. The power value 1416 can indicate a current power(e.g., torque, force) output by the exoskeleton boot 100 to at least onelimb of the user during a movement 1412.

Now referring to FIG. 16, a method 1600 for customizing configurationand operation of an exoskeleton controller is provided. In briefoverview, the method 1600 can include launching an application (1602),determining user characteristics (1604), synchronizing exoskeletondevices (1606), calibrating exoskeleton devices (1608), activatingexoskeleton devices (1610), selecting exoskeleton parameters (1612),identifying route properties (1614), performing a range calculation(1616), determining control parameters (1618), applying controlparameters (1620), performing a movement (1622), determining whetherfeedback has been provided (1624), identifying a type of information(1626), and modifying control parameters (1628). One or more of theseoperations may be performed by at least one processor and/or circuitry(e.g., processor 1406).

At operation 1602, and in some embodiments, an application can belaunched. A user application 1472 (hereinafter application 1472) can belaunched or activated on a client device 1470 of a user, on anexoskeleton device 100 or on a controller 1402 of an exoskeleton device100. The exoskeleton device 100 can be referred to herein as anexoskeleton 100 and/or exoskeleton boot 100. The application 1472 can beexecuting on or provided by different devices and/or types of devices toenable a user to interact with and/or provide feedback to one or moreexoskeleton devices 100. The application 1472 can include a mobileapplication, local application (e.g., native to a particular device theapplication is executing on), web application, software-as-a-service(SaaS) application and/or a network application. The application 1472can be provided through a client application executing on a clientdevice 1470 to provide a user access to applications 1472 (apps) thatare served from and/or hosted on one or more servers, such as webapplications and software-as-a-service (SaaS) applications (hereaftersometimes generally referred to as network applications). The clientdevice 1470 can include any embodiment of a computing device describedherein, including computing system 300 of FIG. 3 and/or computer system300 of FIG. 13. The client device 1470 can include any user device suchas a desktop computer, a laptop computer, a tablet device, a smartphone, or any other mobile or personal device. The client device 1470can include a digital workspace of a user, which can include filesystem(s), cache or memory (e.g., including electronic clipboard(s)),container(s), application(s) and/or other resources on the client device1470.

The application 1472 can automatically execute, or be activated by theuser, for example, responsive to a user interaction with an icon of theapplication 1472 provided through the client device 1470, for examplethrough display 1444. In some embodiments, the user can sign in to theapplication 1472 (e.g., by authenticating the user to the application1472 through the client device 1470). A user can provide a username(e.g., identifier), log-in credentials and/or a password to authenticateto the application 1472 through the client device 1470. The usernameand/or password can be associated with at least one user profile 1420stored and maintained for the respective user. The application 1472 canstore and maintain a plurality of user profiles 146 for a pluralityusers in a storage device (e.g., memory) of an exoskeleton device 100and/or database connected to the exoskeleton device 100. The userprofiles 146 can include previously collected and/or generatedcharacteristics 1424 of the respective user and previously generatedcontrol parameters 1410 for the user. In response to the login orsign-in, the application 1472 can register or authenticate the userand/or the client device 1470 with access to one or more exoskeletonsdevices 100.

At operation 1604, and in some embodiments, user characteristics can bedetermined. The device 1470 and/or exoskeleton device 100 can determinecharacteristics 1424 of the user for performing the movement event 1412using a first exoskeleton boot 100 and a second exoskeleton boot 100.The device 1470 and/or exoskeleton device 100 can identify or receivethe characteristics 1424 of the user for performing the movement event1412 using a first exoskeleton device 100 and a second exoskeletondevice 100, for example, from a database (e.g., memory 1404), userprofile 1420 or server communicatively coupled to the device 1470 and/orexoskeleton device 100. The exoskeleton device 100 can receive, from aclient device 1470 (e.g., or any device application 1472 is executingon) through the application 1472, characteristics 1424 of a user forperforming a movement event 1412 using the first exoskeleton device 100and the second exoskeleton 100. In some embodiments, a first exoskeletondevice 100 can receive the characteristics 1424 from the device 1470 andprovide or transmit the characteristics 1424 to the second exoskeletondevice 100.

The application 1472 can receive characteristics 1424 from a userresponsive to the user launching the application 1472. Thecharacteristics 1424 can be used to initialize or customize a sessionusing the exoskeleton devices 100 for the particular user and traits ofthe user. The characteristics 1424 can include, but not limited to,personal characteristics, age, weight, height, gate information, a typeof activity (e.g., walking, hiking, running, commuting, medical),activity level (e.g., sedentary, lightly, moderately, extremely active),experience level (e.g., experience with an exoskeleton system, novice,beginner, intermediate, advanced, expert), a level of augmentation(e.g., requested level of aid for upcoming activity using theexoskeleton), mode settings, additional sensor identification (e.g.,sensors of other device user is wearing, heart rate, foot pod), limits,configuration data, and/or battery mode (e.g., power saver, average,extreme mode). The characteristics 1424 can include a variety ofdifferent information for the exoskeleton device 100 to establishinitial or baseline control parameters 1410 for the user for a plannedactivity or movement event 1412.

At operation 1606, and in some embodiments, exoskeleton devices 100 canbe synchronized. The multiple exoskeleton devices 100 the user intendsto use for a movement event 1412 and/or is wearing can synchronize orpair with each other. The exoskeleton devices 100 can pair and/orsynchronize to set up an initial connection 1462 to enablecommunications and transfer of data between the exoskeleton devices 100.The controller 1402 can, responsive to a request from a user (e.g.,paring request, sync request), establish a connection 1462 between afirst exoskeleton device 100 and a second exoskeleton device 100. Forexample, a first exoskeleton device 100 can be attached to a leg orlower limb of the user and a second exoskeleton device 100 can beattached to a right leg or lower limb of the user. The two exoskeletondevices 100 can pair or synchronize through one or more connections 1462(e.g., wireless) between the respective exoskeleton devices 100. In someembodiments, the exoskeleton devices 100 can pair through a Bluetoothcomponent of each of the respective exoskeleton devices 100. Thecontroller 1402 and/or exoskeleton boots 100 can establish theconnection 1462 to communicate one or more measurements or sensor data1442 during a movement 1412 or multiple movements 1412.

In some embodiments, the exoskeleton device 100 can connect with one ormore sensors 1440 (e.g., heart rate monitor, foot pod, smartwatchsensors) and/or other client devices 1470 (e.g., smartwatch, headphones)of the user. The exoskeleton device 100 can pair (e.g., Bluetoothpairing) or synchronize with the sensors 1440 and/or other clientdevices 1470 to establish a connection 1462 between the exoskeletondevice 100 and the sensors 1440 and client devices 1470. The sensors1440 and client devices 1470 can transmit and provide data to one ormore exoskeleton devices 100 the user is using through the connection1462. The data can include, but not limited to, measurements, sensordata and other forms of tracking data for tracking a performance of theuser during an activity and/or a movement event 1412 performed by theuser. The client device 1470 and/or the exoskeleton device 100 caninclude a scanner (e.g., quick response (QR) scanner), and/or rangemobile device. For example, the client device 1470 can scan a code,microchip or near field communication (NFC) tag attached to orassociated with a sensor 1440 and/or other client device 1470 to pairand/or synchronize to the sensor 1440 or other client device 1470. Theclient device 1470 can pair the sensor 1440 and other client device 1470to the one or more exoskeletons devices 100 of the user. In someembodiments, the exoskeleton device 100 can scan a code, microchip ornear field communication (NFC) tag attached to or associated with asensor 1440 and/or client device 1470 to pair and/or synchronize to thesensor 1440 or client device 1470.

At operation 1608, and in some embodiments, exoskeleton devices 100 canbe calibrated. The exoskeleton devices 100 can calibrate components ofthe respective exoskeleton devices 100 to test whether the components(e.g., sensors 1440, battery 145, processor 1406, controller 1402) areactivated, working and/or an accuracy of the values generated by therespective components. The exoskeletons devices 100 can transmit a testsignal to a component requesting a response to identify the component asbeing activated and functioning. The exoskeleton devices 100 can performa test of a sensor 1440 or tracking tool to determine an accuracy of thesensor 1440 or tracking tool 1440. For example, the exoskeleton device100 can provide the sensor 1440 with a test value having a knownmeasurement response or known response. The exoskeleton device 100 cancompare the response value or response measurement from the sensor 1440to an expected value (e.g., angle data, speed measurement, voltage,battery value) to determine the accuracy of the sensor 1440. If thereturned value is correct or matches the expected value, the exoskeletondevice 100 can identify, mark or tag the sensor 1440 as beingcalibrated. If the returned value is incorrect or does not match theexpected value, the exoskeleton device 100 can test the sensor 1440 orcomponent one or more additional times to calibrate the sensor 1440 orcomponent. In some embodiments, the exoskeleton device 100 can make anadjustment or modification to the sensor 1440 or component that failedcalibration to correct the error. If the subsequent tests also fail, theexoskeleton device 100 can generate a notification 1450 for the userthough the client device 1470 to alert the user to the issue. Thenotification 1450 can identify the sensor 1440 or component of theexoskeleton device 100 that failed to calibrate and/or identify an issuewith the sensor 1440 or component of the exoskeleton device 100.

At operation 1610, and in some embodiments, exoskeleton devices can beactivated. The exoskeleton devices 100 can be activated or powered up toa functional power mode (e.g., full power mode, able to provide powerand torque output). For example, during pairing and calibration, theexoskeleton devices 100 can be a low power mode or lower power mode thatis less than a functioning power mode to preserve battery life. Theexoskeleton devices 100 can power up to a functioning power mode toprepare to operate and augment a movement event 1412 of a user. Theexoskeleton device 100 can generate a battery icon 1430 through a userinterface 1446 of a client device 1470 and/or exoskeleton device 100 toshow and display a current battery level of the exoskeleton device 100and/or a power mode (e.g., functional power mode, full power mode, lowpower mode).

At operation 1612, and in some embodiments, exoskeleton parameters canbe selected. The exoskeleton device 100 can select one or moreparameters or initial parameters to control or guide the exoskeletondevice 100 during a first or initial period of an activity a movementevent 1412. The exoskeleton device 100 can select a level ofaugmentation indicating or corresponding to a power level and/or atorque level to provide to a user performing a movement event 1412. Thelevel of augmentation can be selected responsive to a user interactionwith the application 1472. For example, the application 1472 can displayan interactive slider 1510 that moves between different levels ofaugmentation. The application 1472 can, responsive to a user interactionwith the slider 1510, generate a signal indicating a selected targetlevel of augmentation (e.g., augmentation display 1432) for theexoskeleton device 100. In some embodiments, the controller 1402 canreceive from the client device 1470, through the application 1472, anaugmentation value 1432 for the first exoskeleton device 100 and thesecond exoskeleton device 100. The augmentation values 1432 for eachexoskeleton device 100 can be the same or different (e.g., injured leg).The application 1472 can transmit the signal to a controller 1402 of theexoskeleton device 100 to adjust or modify the level of augmentation tothe selected level of augmentation. In some embodiments, the level ofaugmentation can be selected for the user based in part on the usercharacteristics and the movement 1412 to be performed. For example, thecontroller 1402 can select at least one pre-determined level ofaugmentation that is determined based on previous movements 1412involving the user, previous movements 14122 involving similar usersand/or baseline levels of augmentation selected to different types ofmovements 1412.

The exoskeleton device 100 can select a power mode for a movement event1412. The power mode can be based in part on the selected level ofaugmentation. In some embodiments, the parameters can be received from aclient device 1470. For example, the client device 1470 can transmit arequested level of augmentation and/or power mode for a movement event1412 to one or more exoskeleton devices 100. The user can enter theparameters through a user interface (e.g., touch screen, control pad,icon) of the client device 1470 to request a level of augmentationand/or power mode for the movement event 1412.

At operation 1614, and in some embodiments, route properties 1428 can beidentified, calculated or determined. The exoskeleton device 100 canidentify properties 1428 of a route 1426 to be taken for the movementevent 1412. The exoskeleton device 100 can identify a starting point ofthe route 1426 and an end point for the route 1426. In some embodiments,the device 1470 and/or exoskeleton device 100 can connect to or access aserver (e.g., server database, remote server, third party server) toretrieve distance information for a route 1426, topology information fora route 1426 and/or GPS coordinates corresponding to the starting pointof the route 1426 and the end point for the route 1426. In someembodiments, the starting point and end point can be provided to thecontroller 1402 by the application 1472, for example, responsive to auser entering the starting point and end point. The application 1472 canreceive a target destination and determine a current location of theclient device 1470 and/or exoskeleton device 100 (e.g., starting point)and determine the route 1426.

The controller 1402 can determine or calculate properties 1428 of theroute 1426, including but not limited to, altitude of one or moreportions of the route 1426 or terrain details (e.g., water, land, swamp)of one or more portions of the route 1426. The controller 1402 can storeand maintained altitude and/or terrain properties in the memory 1404 forone or more routes 1426 (e.g., previous routes, planned routes). In someembodiments, the controller 1402 can connect to a third partyapplication or server to request and receive altitude and/or terrainproperties for one or more routes 1426 and/or locations. The controller1402 can determine a power level 1416 for the movement 1412 and route1426. The power level 1416 can indicate a level or percentage of thebattery 1430 a movement 1412 or route 1426 will take or require to beperformed. The controller 1402 can determine the power level 1416 priorto initiating or performing a movement 1412 or initiating a route 1426and generate an indication through the application 1472 and/or a userinterface 1446 of the exoskeleton device 100 to notify the user of thepower level 1416 needs for the planned movement 1412 and/or route 1426.The controller 1402 can determine multiple power levels 1416 for a route1426. The route 1426 can include different portions having differentterrain, altitude or one or more other different properties. Thecontroller 1402 can determine a power level 1416 for each portion of theroute 1426 and transition the exoskeleton device 100 between thedifferent power levels 1416 as the user transverses the differentportions of the route 1426.

At operation 1616, and in some embodiments, a range calculation can beperformed. The controller 1402 and/or exoskeleton device 100 can performa range calculation for the movement 1412 or route 1426 based on theuser profile 1420, properties of the first lower limb exoskeleton device100 and the second lower limb exoskeleton device 100 and/or data (e.g.,distance, GPS information) received from a server or database. Thecontroller 1402 can determine a total distance of the route 1426 and/orto perform the movement 1412. The controller 1402 can determine a rangeor distance for one or more portions of a route 1426 and provide thetotal range (e.g., total distance) and a range of each of the differentportions forming the route 1426 to a user through the application 1472.In some embodiments, the controller 1402 determine a range or distancefor multiple routes 1426 including the planned route 1426 and one ormore alternative routes 1426 having the same or similar start and endpoints as possible alternatives (e.g., faster route, less altitude, lessterrain hazards) to the planned route 1426.

The controller 1402 can determine a measurement of the battery status1430 (e.g., current battery level) and/or a battery requirement for themovement 1412 or route 1426 using the range calculation and a providedaugmentation value 1432. The relationship between the current batterystatus 1430 or battery reserve power, the power level 1416 and thedetermined range 1438 can be critical to completing a movement 1412and/or route 1426 (e.g., mission). The controller 1402 can determine ifthe exoskeleton boots 100 have enough battery 1430 to complete themovement 1412 and/or route 1426, for example, so that a user can make aninformed decision on whether to complete the movement 1412 and/or route1426 or modify the movement 1412 and/or route 1426. The compare thebattery status 1430 to the power level 1416 to determine if theexoskeleton device 100 has enough battery power 1430 to complete themovement and/or route 1426. The controller 1402 can generate anotification 1450 to the user through the application 1472 to indicateif the exoskeleton device 100 has enough battery power 1430 to completethe movement and/or route 1426 or if the exoskeleton device 100 does nothave enough battery power 1430 to complete the movement and/or route1426.

At operation 1618, and in some embodiments, control parameters 1410 canbe determined. The controller 1402 and/or exoskeleton device 100 candetermine control parameters 1410 for the exoskeleton boots 100. Thecontroller 1402 can determine the control parameters 1410 using thecharacteristics 1424 of the user and the properties of the route 1426and/or movement 1412 for the exoskeleton boots 100 to perform themovement 1412 and/or complete the route 1426, for example, by providingpower or torque to lower limbs of the user. The control parameters 1410can include a command, an instruction, task or function provided to anexoskeleton device 100 to instruct the exoskeleton device 100 togenerate target level or amount of torque, force, velocity or acombination of torque, force and velocity (e.g., impedance) and aid auser wearing the respective exoskeleton device 100 in performing amovement 1412. The control parameters 1410 can include a data structureindicating a desired, requested or target torque, force and/or velocitylevel (e.g., torque 1414, power 1416). The control parameters 1410 caninclude, but are not limited to, battery requirements, power level,and/or power levels for an exoskeleton device 100. The controlparameters 1410 can include battery requirements, power level, and/orpower levels for each step performed using the first exoskeleton device100 and the second exoskeleton device 100.

At operation 1620, and in some embodiments, control parameters 1410 canbe applied. The controller 1402 can provide or apply the controlparameters 1410 to the first exoskeleton device 100 and the secondexoskeleton device 100 for the user to operate the first exoskeletondevice 100 and the second exoskeleton device 100 during the movement1412 and/or the route 1426. The controller 1402 can instruct or commandthe respective exoskeleton boots to set a torque value 1414 to a targetlevel, set a force level to a target level, a power level 1416 to atarget level, and/or velocity level to a target level using thedetermined control parameters 1410. The controller 1402 can increase atorque value 1414 to a target level, set a force level to a targetlevel, a power level 1416 to a target level, and/or velocity level to atarget level based in part on the control parameters 1410. Thecontroller 1402 can initiate movement of the exoskeleton boots 100 suchthat the exoskeleton boots 100 output a target torque value 1414, targetforce level, target power level 1416 and/or target velocity level toperform a movement 1412 and/or route 1426.

The controller 1402 can calibrate or sync, using the connection 1462,the control parameters 1410 between the first exoskeleton device 100 andthe second exoskeleton device 100. The controller 1402 can provide thesame level or value of power 1416 (or torque, force, velocity) to eachexoskeleton device 100 (e.g., same to each leg) or provide differentlevels or values of power 1416 (or torque, force, velocity) to eachexoskeleton device 100 based in part on the user characteristics (e.g.,injury to one leg, injury to an ankle on one leg). The controller 1402can, responsive to the range calculation, provide a first value of power1416 to the first exoskeleton device 100 and a second value of power1416 to the second exoskeleton device 100 to execute the movement 1412and/or complete the route 1426. The first value of power 1416 and thesecond value of power 1416 can be the same or equal values or differentvalues. The controller 1402 can determine the first value of power 1416for the first exoskeleton device 100 and the second value of power 1416for the second exoskeleton device 100 based on at least one of: a weightof the user, a height of the user or an age of the user.

At operation 1622, and in some embodiments, a movement can be performed.The first exoskeleton device 100 and second exoskeleton device 100 canperform a movement 1412 and/or augment or aid a user in performing themovement 1412 by providing the torque 1414 and/or power 1416 indicatedby the control parameters 1410. The exoskeleton boots 100 can provideforce, torque and/or power to the lower limb of the user the respectiveexoskeleton device 100 is coupled to with to augment the movement of theuser during the activity 1412. The movements 1412 can include, but notlimited to, walking, running, standing, standing up, ascend or descend asurface (e.g., stairs), jogging, springing, jumping (e.g., single leg orboth legs) squat, crouch, kneel or kick. The exoskeleton boots 100 cantransfer energy to the lower limb of the user to augment the movement ofthe user during the movement 1412 or multiple movements 1412. Theexoskeleton boots 100 can reduce a difficulty of performing therespective movement 1412 or multiple movements 1412 by reducing theenergy or effort the user exerts to perform the respective movement1412.

The controller 1402 can display metrics through the application 1472during the movement 1412, after the movement 1412 completes and/or asthe user transverses the route 1426. The metrics can include but notlimited to, a step count 1436, a battery status 1430, a rangecalculation 1438, a torque level 1414 and/or a power level 1416. Thecontroller 1402 can generate and display the step count 1436, batterystatus 1430, range calculation 1438, torque level 1414 and/or powerlevel 1416 through the application 1472 as the movement 1412 isperformed and/or as the route 1426 is completed. The controller 1402 canprovide, to the user through the client device 1470 and application1472, a first step count 1436 for the first exoskeleton device 100 and asecond step count 1436 for the second exoskeleton device 100. Thecontroller 1402 can continuously modify (e.g., in real-time), the stepcount 1436, battery status 1430, range calculation 1438, torque level1414 and/or power level 1416 through the application 1472 as themovement 1412 is performed and/or as the route 1426 is completed.

At operation 1624, and in some embodiments, a determination can be madewhether or not feedback has been provided. The controller 1402 and/orexoskeleton device 100 can determine whether or not feedback has beenreceived from the application 1472 and/or from the exoskeleton device100. The feedback can include feedback generated and provided by theexoskeleton device 100, including but not limited to, an issue with theexoskeleton device 100, a performance issue by the user and/orexoskeleton device 100 during the movement 1412. The feedback caninclude feedback received from the application 1472 and provided by auser, including but not limited to, a performance rating (e.g., goingwell, struggling, need more augmentation), a new level of augmentationreceived via the slider 1510 of the application 1472, a movementmodification, a route modification and/or a performance issue associatedwith the user and/or exoskeleton device 100 during the movement 1412. Inembodiments, if no feedback has been received, the method 1600 canreturn to (1622) to perform a next movement 1412 or continue performinga current movement 1412. In embodiments, if feedback has been received,the method 1600 can go to (1624) to determine a type of informationreceived.

At operation 1626, and in some embodiments, a type of information can beidentified. The controller 1402 can determine the type of informationreceived in the feedback and a source of the feedback. The type ofinformation can include performance information, including but notlimited to, sensor data 1442, a score 1452 for the user performing themovement 1412, a missed step, and/or a missed portion of the movement1412. In some embodiments, the exoskeleton device 100 can determine astep was missed or a gait transition was missed during the movement 1412and generate an notification indicating the step missed or missed gaittransition during the movement 1412 for the controller 1402 and/orapplication 1472, for example, to notify the user. The controller 1402can determine a missed step or missed gait transition responsive to aninput from the user via the application 1472 indicating that the step ormultiple steps were missed. The type of information can includemodifications or requests to modify one or more control parameters 1410.The controller 1402 can receive feedback request to increase or decreasea level of augmentation 1432, a level of torque 1414 and/or a level ofpower 1416. The type of information can include modifications to themovement 1412, a subsequent movement 1412 and/or a route 1426. The typeof information can include modifications or requests to modify one ormore control parameters 1410. The controller 1402 can receive feedbackrequest to increase or decrease a level of augmentation 1432, a level oftorque 1414 and/or a level of power 1416. The type of information caninclude modifications to the movement 1412, a subsequent movement 1412and/or a route 1426.

The controller 1402 can generate a score 1452 for the user based in parton received sensor data 1442 and/or other forms of feedback. The score1452 can indicate how well the user performed the movement 1412, one ormore previous movements 1412 or one or more portions of a currentmovement 1412. The score 1452 can indicate if the user performed themovement 1412 correctly or if the movement 1412 was performedincorrectly (e.g., missed step, missed gait transition). The controller1402 can use the score 1452 to determine modifications to the controlparameters 1410, for example, to aid the user if performing the movement1412 or a next movement 1412 correctly.

At operation 1628, and in some embodiments, control parameters can bemodified. The controller 1402 can modify one or more control parameters1410 of the exoskeleton boots 100 for one or more next movements 1412 orto continue a current movement 1412. In embodiments, the controller canmodify, responsive to at least one of a measurement of the user duringthe movement 1412 (e.g., sensor data 1442), feedback or score 1452, oneor more control parameters 1410 of the exoskeleton boots 100 for one ormore next movements 1412 or to continue a current movement 1412. Themodifications can include changes to a torque 1414 and/or a power 1416provided to the first exoskeleton device 100 and the second exoskeletonduring the movement event. The controller 1402 can increase or decreasea current level of the torque 1414 and/or power 1416 provided to theexoskeleton boots 100 or provided by the exoskeleton boots 100. Themodifications can include changes to an augmentation level 1434 providedby the exoskeleton boots 100. In embodiments, the controller 1402 canmodify, responsive to at least one of a measurement of the user duringthe movement 1412 (e.g., sensor data 1442), feedback or score 1452, anaugmentation value 1432 for the first exoskeleton device 100 and thesecond exoskeleton device 100.

In embodiments, the controller 1402 can modify the control parameters1410 based in part on a group profile 1422 the respective user isassociated with or currently performing one or more movements 1412 with.The controller 1402 can generate a group profile 1422 for a group ofusers based on one or more previous movement events 1412 and modify,using group profile 1422, the control parameters 1410 for the user (ormultiple users in the group profile 1422) to operate the firstexoskeleton device 100 and the second exoskeleton device 100 during themovement 1412 or for a subsequent movement 1412. The group profile 1422can include a group of users involved in a common activity (e.g.,military unit on a training mission, adventure group hiking) and/or agroup of users having similar user characteristics (e.g., age, weight,height, gender, skill level, activity level). The controller 1402 canuse information from multiple different users and/or user profiles 1420to generate and/or modify control parameters 1410 for one or more userslinked in the group profile 1422. In some embodiments, the controller1402 can link multiple user profiles 1420 in a group profile 1422 forcommunications between exoskeleton boots 100 or devices worn by thedifferent users participating in a common or group activity. The groupprofile 1422 can enable communications between a military unit havingtwo or more members such that the exoskeleton boots 100 worn by eachuser can communicate with one or more or all of the exoskeleton boots100 worn by any of the other users in the respective group and generatecontrol parameters 1410 using a larger data set (e.g., sensor data 1442from each exoskeleton device 100 in the group). In some embodiments, themethod 1600 can return to (1604) and (1614) to modify, update ordetermine user characteristics 1424 based in part on the receivedfeedback and/or modify, update or identify route properties 1428 for theroute 1426 or a new or subsequent route 1426 based in part on thereceived feedback prior to applying the modified control parameters1410.

In embodiments, the method 1600 can return to (1620) to apply themodified control parameters to the exoskeleton boots 100. For example,the controller 1402 can provide or apply the modified control parameters1410 to the first exoskeleton device 100 and the second exoskeletondevice 100 for the user to operate the first exoskeleton device 100 andthe second exoskeleton device 100 during a current movement 1412, one ormore subsequent movements 1412 and/or to transverse the route 1426. Thecontroller 1402 can instruct or command the respective exoskeleton bootsto set a torque value 1414 to the modified level, set a force level tothe modified level, a power level 1416 to modified level, and/orvelocity level to modified level using the modified control parameters1410. The controller 1402 can increase or decrease a torque value 1414to the modified level, increase or decrease a force level to themodified level, increase or decrease a power level 1416 to the modifiedlevel, and/or increase or decrease a velocity level to modified level.

Embodiments of the subject matter and the operations described in thisspecification can be implemented in digital electronic circuitry, or incomputer software, firmware, or hardware, including the structuresdisclosed in this specification and their structural equivalents, or incombinations of one or more of them. The subject matter described inthis specification can be implemented as one or more computer programs,e.g., one or more circuits of computer program instructions, encoded onone or more computer storage media for execution by, or to control theoperation of, data processing apparatus. Alternatively or in addition,the program instructions can be encoded on an artificially generatedpropagated signal, e.g., a machine-generated electrical, optical, orelectromagnetic signal that can be generated to encode information fortransmission to suitable receiver apparatus for execution by a dataprocessing apparatus. A computer storage medium can be, or be includedin, a computer-readable storage device, a computer-readable storagesubstrate, a random or serial access memory array or device, or acombination of one or more of them. Moreover, while a computer storagemedium may not a propagated signal, a computer storage medium can be asource or destination of computer program instructions encoded in anartificially generated propagated signal. The computer storage mediumcan also be, or be included in, one or more separate components or media(e.g., multiple CDs, disks, or other storage devices).

The operations described in this specification can be performed by adata processing apparatus on data stored on one or morecomputer-readable storage devices or received from other sources. Theterm “data processing apparatus” or “computing device” encompassesvarious apparatuses, devices, and machines for processing data,including by way of example a programmable processor, a computer, asystem on a chip, or multiple ones, or combinations of the foregoing.The apparatus can include special purpose logic circuitry, e.g., an FPGA(field programmable gate array) or an ASIC (application specificintegrated circuit). The apparatus can also include, in addition tohardware, code that creates an execution environment for the computerprogram in question, e.g., code that constitutes processor firmware, aprotocol stack, a database management system, an operating system, across-platform runtime environment, a virtual machine, or a combinationof one or more of them. The apparatus and execution environment canrealize various different computing model infrastructures, such as webservices, distributed computing and grid computing infrastructures.

A computer program (also known as a program, software, softwareapplication, script, or code) can be written in any form of programminglanguage, including compiled or interpreted languages, declarative orprocedural languages, and it can be deployed in any form, including as astand-alone program or as a circuit, component, subroutine, object, orother unit suitable for use in a computing environment. A computerprogram may, but need not, correspond to a file in a file system. Aprogram can be stored in a portion of a file that holds other programsor data (e.g., one or more scripts stored in a markup languagedocument), in a single file dedicated to the program in question, or inmultiple coordinated files (e.g., files that store one or more circuits,subprograms, or portions of code). A computer program can be deployed tobe executed on one computer or on multiple computers that are located atone site or distributed across multiple sites and interconnected by acommunication network.

Processors suitable for the execution of a computer program include, byway of example, microprocessors, and any one or more processors of adigital computer. A processor can receive instructions and data from aread only memory or a random access memory or both. The elements of acomputer are a processor for performing actions in accordance withinstructions and one or more memory devices for storing instructions anddata. A computer can include, or be operatively coupled to receive datafrom or transfer data to, or both, one or more mass storage devices forstoring data, e.g., magnetic, magneto optical disks, or optical disks. Acomputer need not have such devices. Moreover, a computer can beembedded in another device, e.g., a personal digital assistant (PDA), aGlobal Positioning System (GPS) receiver, or a portable storage device(e.g., a universal serial bus (USB) flash drive), to name just a few.Devices suitable for storing computer program instructions and datainclude all forms of non-volatile memory, media and memory devices,including by way of example semiconductor memory devices, e.g., EPROM,EEPROM, and flash memory devices; magnetic disks, e.g., internal harddisks or removable disks; magneto optical disks; and CD ROM and DVD-ROMdisks. The processor and the memory can be supplemented by, orincorporated in, special purpose logic circuitry.

To provide for interaction with a user, implementations of the subjectmatter described in this specification can be implemented on a computerhaving a display device, e.g., a CRT (cathode ray tube) or LCD (liquidcrystal display) monitor, for displaying information to the user and akeyboard and a pointing device, e.g., a mouse or a trackball, by whichthe user can provide input to the computer. Other kinds of devices canbe used to provide for interaction with a user as well; for example,feedback provided to the user can be any form of sensory feedback, e.g.,visual feedback, auditory feedback, or tactile feedback; and input fromthe user can be received in any form, including acoustic, speech, ortactile input.

The implementations described herein can be implemented in any ofnumerous ways including, for example, using hardware, software or acombination thereof. When implemented in software, the software code canbe executed on any suitable processor or collection of processors,whether provided in a single computer or distributed among multiplecomputers.

Also, a computer may have one or more input and output devices. Thesedevices can be used, among other things, to present a user interface.Examples of output devices that can be used to provide a user interfaceinclude printers or display screens for visual presentation of outputand speakers or other sound generating devices for audible presentationof output. Examples of input devices that can be used for a userinterface include keyboards, and pointing devices, such as mice, touchpads, and digitizing tablets. As another example, a computer may receiveinput information through speech recognition or in other audible format.

Such computers may be interconnected by one or more networks in anysuitable form, including a local area network or a wide area network,such as an enterprise network, and intelligent network (IN) or theInternet. Such networks may be based on any suitable technology and mayoperate according to any suitable protocol and may include wirelessnetworks, wired networks or fiber optic networks.

A computer employed to implement at least a portion of the functionalitydescribed herein may comprise a memory, one or more processing units(also referred to herein simply as “processors”), one or morecommunication interfaces, one or more display units, and one or moreuser input devices. The memory may comprise any computer-readable media,and may store computer instructions (also referred to herein as“processor-executable instructions”) for implementing the variousfunctionalities described herein. The processing unit(s) may be used toexecute the instructions. The communication interface(s) may be coupledto a wired or wireless network, bus, or other communication means andmay therefore allow the computer to transmit communications to orreceive communications from other devices. The display unit(s) may beprovided, for example, to allow a user to view various information inconnection with execution of the instructions. The user input device(s)may be provided, for example, to allow the user to make manualadjustments, make selections, enter data or various other information,or interact in any of a variety of manners with the processor duringexecution of the instructions.

The various methods or processes outlined herein may be coded assoftware that is executable on one or more processors that employ anyone of a variety of operating systems or platforms. Additionally, suchsoftware may be written using any of a number of suitable programminglanguages or programming or scripting tools, and also may be compiled asexecutable machine language code or intermediate code that is executedon a framework or virtual machine.

In this respect, various inventive concepts may be embodied as acomputer readable storage medium (or multiple computer readable storagemedia) (e.g., a computer memory, one or more floppy discs, compactdiscs, optical discs, magnetic tapes, flash memories, circuitconfigurations in Field Programmable Gate Arrays or other semiconductordevices, or other non-transitory medium or tangible computer storagemedium) encoded with one or more programs that, when executed on one ormore computers or other processors, perform methods that implementfeatures of the solution discussed above. The computer readable mediumor media can be transportable, such that the program or programs storedthereon can be loaded onto one or more different computers or otherprocessors to implement various aspects of the present solution asdiscussed above.

The terms “program” or “software” are used herein to refer to any typeof computer code or set of computer-executable instructions that can beemployed to program a computer or other processor to implement variousaspects as discussed above. One or more computer programs that whenexecuted perform methods of the present solution need not reside on asingle computer or processor, but may be distributed in a modularfashion amongst a number of different computers or processors toimplement various aspects of the present solution.

Computer-executable instructions may be in many forms, such as programmodules, executed by one or more computers or other devices. Programmodules can include routines, programs, objects, components, datastructures, or other components that perform particular tasks orimplement particular abstract data types. The functionality of theprogram modules can be combined or distributed as desired in variousimplementations.

Also, data structures may be stored in computer-readable media in anysuitable form. For simplicity of illustration, data structures may beshown to have fields that are related through location in the datastructure. Such relationships may likewise be achieved by assigningstorage for the fields with locations in a computer-readable medium thatconvey relationship between the fields. However, any suitable mechanismmay be used to establish a relationship between information in fields ofa data structure, including through the use of pointers, tags or othermechanisms that establish relationship between data elements.

Any references to implementations or elements or acts of the systems andmethods herein referred to in the singular can include implementationsincluding a plurality of these elements, and any references in plural toany implementation or element or act herein can include implementationsincluding only a single element. References in the singular or pluralform are not intended to limit the presently disclosed systems ormethods, their components, acts, or elements to single or pluralconfigurations. References to any act or element being based on anyinformation, act or element may include implementations where the act orelement is based at least in part on any information, act, or element.

Any implementation disclosed herein may be combined with any otherimplementation, and references to “an implementation,” “someimplementations,” “an alternate implementation,” “variousimplementations,” “one implementation” or the like are not necessarilymutually exclusive and are intended to indicate that a particularfeature, structure, or characteristic described in connection with theimplementation may be included in at least one implementation. Suchterms as used herein are not necessarily all referring to the sameimplementation. Any implementation may be combined with any otherimplementation, inclusively or exclusively, in any manner consistentwith the aspects and implementations disclosed herein.

References to “or” may be construed as inclusive so that any termsdescribed using “or” may indicate any of a single, more than one, andall of the described terms. References to at least one of a conjunctivelist of terms may be construed as an inclusive OR to indicate any of asingle, more than one, and all of the described terms. For example, areference to “at least one of ‘A’ and ‘B’” can include only ‘A’, only‘B’, as well as both ‘A’ and ‘B’. Elements other than ‘A’ and ‘B’ canalso be included.

The systems and methods described herein may be embodied in otherspecific forms without departing from the characteristics thereof. Theforegoing implementations are illustrative rather than limiting of thedescribed systems and methods.

Where technical features in the drawings, detailed description or anyclaim are followed by reference signs, the reference signs have beenincluded to increase the intelligibility of the drawings, detaileddescription, and claims. Accordingly, neither the reference signs northeir absence have any limiting effect on the scope of any claimelements.

The systems and methods described herein may be embodied in otherspecific forms without departing from the characteristics thereof. Theforegoing implementations are illustrative rather than limiting of thedescribed systems and methods. Scope of the systems and methodsdescribed herein is thus indicated by the appended claims, rather thanthe foregoing description, and changes that come within the meaning andrange of equivalency of the claims are embraced therein.

What is claimed is:
 1. A method for controlling operation of exoskeletonboots, the method comprising: receiving, by a device via a userinterface, feedback from a user indicative of a performance of the userduring a movement event; determining, by the device, characteristics ofthe user for performing the movement event using a first exoskeletonboot and a second exoskeleton boot; identifying, by the device,properties of a route for the movement event; determining, by a deviceusing the characteristics of the user, the feedback and the propertiesof the route, control parameters for the first exoskeleton boot and thesecond exoskeleton boot to execute the movement event; and applying, bythe device, the control parameters to the first exoskeleton boot and thesecond exoskeleton boot for the user to operate the first exoskeletonboot and the second exoskeleton boot during the movement event.
 2. Themethod of claim 1, wherein the characteristics of the user include atleast one of: age, weight, height, gate information, or activity level.3. The method of claim 1, wherein the properties of the route include atleast one of: type of activity, distance, start point, end point,terrain, or altitude.
 4. The method of claim 1, wherein the controlparameters include at least one of: battery requirements, power level,power levels for each step performed using the first exoskeleton bootand the second exoskeleton boot.
 5. The method of claim 1, furthercomprising: modifying, by the device responsive to a measurement of theuser during the movement event, the control parameters during themovement event to modify a power provided to the first exoskeleton bootand the second exoskeleton boot during the movement event.
 6. The methodof claim 1, further comprising: establishing, by the device, aconnection between the first exoskeleton boot and the second exoskeletonboot to communicate one or more measurements during the movement event.7. The method of claim 1, further comprising: determining, by the deviceresponsive to an input from the user, a step missed during the movementevent; and generating, by the device, a notification indicating the stepmissed during the movement event.
 8. The method of claim 1, furthercomprising: generating, by the device, a group profile for a group ofusers based on one or more previous movement events; and modifying, bythe device using group profile, the control parameters for the user tooperate the first exoskeleton boot and the second exoskeleton bootduring the movement event.
 9. The method of claim 1, further comprising:determining, by the device, a score for the user during the movementevent based on measurements from the first exoskeleton boot and thesecond exoskeleton boot.
 10. A method for controlling operation ofexoskeleton boots, the method comprising: establishing, by a deviceresponsive to a request from a user, a connection between a firstexoskeleton boot and a second exoskeleton boot; identifying, by thedevice, a user profile associated with the user; performing, by thedevice, a range calculation for a movement event based on the userprofile and properties of the first exoskeleton boot and the secondexoskeleton boot; and providing, by the device responsive to the rangecalculation, a first value of power to the first exoskeleton boot and asecond value of power to the second exoskeleton boot to execute themovement event.
 11. The method of claim 10, further comprising:calibrating, by the device using the connection, control parametersbetween the first exoskeleton boot and the second exoskeleton boot. 12.The method of claim 10, further comprising: determining, by the deviceresponsive to the range calculation, the first value of power for thefirst exoskeleton boot and the second value of power for the secondexoskeleton boot to execute the movement event based on at least one of:a weight of the user, a height of the user or an age of the user. 13.The method of claim 10, further comprising: receiving, by the devicefrom a user interface, an augmentation value for the first exoskeletonboot and the second exoskeleton boot, the augmentation value indicativeof a level of assistance provided by the first exoskeleton boot and thesecond exoskeleton boot to the user during the movement event.
 14. Themethod of claim 10, further comprising: modifying, by the deviceresponsive to a measurement indicative of a performance of the userduring the movement event, an augmentation value for the firstexoskeleton boot and the second exoskeleton boot, the augmentation valueindicative of a level of assistance provided by the first exoskeletonboot and the second exoskeleton boot to the user during the movementevent.
 15. The method of claim 10, further comprising: determining, bythe device, a measurement of a battery status or battery requirement forthe movement event using a range calculation and a provided augmentationvalue.
 16. The method of claim 10, further comprising: providing, by thedevice to the user through a user interface, a first step count for thefirst exoskeleton boot and a second step count for the secondexoskeleton boot, the first step count indicating a number of stepsperformed by the first exoskeleton boot during the movement event andthe second step count indicating a number of steps performed by thesecond exoskeleton boot during the movement event.
 17. The method ofclaim 16, further comprising: continuously modifying, the deviceresponsive to actions by the user, the first step count for the firstexoskeleton boot and the second step count for the second exoskeletonboot during the movement event.
 18. A device for controlling operationof exoskeleton boots, the device comprising: a processor coupled tomemory, the processor configured to: receive, from a use interfacecommunicatively coupled to the device, feedback from the user indicativeof a performance of the user during a movement event; determinecharacteristics of the user for performing the movement event using afirst exoskeleton boot and a second exoskeleton boot; identifyproperties of a route for the movement event; determine, using thecharacteristics of the user, the feedback, and the properties of theroute, control parameters for the first exoskeleton boot and the secondexoskeleton boot to execute the movement event; and apply the controlparameters to the first exoskeleton boot and the second exoskeleton bootfor the user to operate the first exoskeleton boot and the secondexoskeleton boot during the movement event.
 19. The device of claim 18,wherein the processor is further configured to: modify, responsive to ameasurement of the user during the movement event, the controlparameters during the movement event to modify a power provided to thefirst exoskeleton boot and the second exoskeleton boot during themovement event.
 20. The device of claim 18, wherein the processor isfurther configured to: establish a connection between the firstexoskeleton boot and the second exoskeleton boot to communicate one ormore measurements during the movement event.